blk-mq: use sparser tag layout for lower queue depth
authorJens Axboe <axboe@fb.com>
Fri, 9 May 2014 19:41:15 +0000 (13:41 -0600)
committerJens Axboe <axboe@fb.com>
Fri, 9 May 2014 19:41:15 +0000 (13:41 -0600)
commit59d13bf5f57ded658c872fa22276f75ab8f12841
treeea3b3bf9395c01a5443c2e01874837a19d6e4c62
parent4bb659b156996f2993dc16fad71fec9ee070153c
blk-mq: use sparser tag layout for lower queue depth

For best performance, spreading tags over multiple cachelines
makes the tagging more efficient on multicore systems. But since
we have 8 * sizeof(unsigned long) tags per cacheline, we don't
always get a nice spread.

Attempt to spread the tags over at least 4 cachelines, using fewer
number of bits per unsigned long if we have to. This improves
tagging performance in setups with 32-128 tags. For higher depths,
the spread is the same as before (BITS_PER_LONG tags per cacheline).

Signed-off-by: Jens Axboe <axboe@fb.com>
block/blk-mq-tag.c
block/blk-mq-tag.h