sbitmap: randomize initial alloc_hint values
authorOmar Sandoval <osandov@fb.com>
Sat, 17 Sep 2016 08:28:25 +0000 (01:28 -0700)
committerJens Axboe <axboe@fb.com>
Sat, 17 Sep 2016 14:39:14 +0000 (08:39 -0600)
commit98d95416dbfaf4910caadfb4ddc75e4aacbdff8c
treeed6a08e6d4358da522265ac1e6a595fe8db35572
parentf4a644db86669d938c71f19560aebf69d4720d63
sbitmap: randomize initial alloc_hint values

In order to get good cache behavior from a sbitmap, we want each CPU to
stick to its own cacheline(s) as much as possible. This might happen
naturally as the bitmap gets filled up and the alloc_hint values spread
out, but we really want this behavior from the start. blk-mq apparently
intended to do this, but the code to do this was never wired up. Get rid
of the dead code and make it part of the sbitmap library.

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