bcache: increase the number of open buckets
authorTang Junhui <tang.junhui@zte.com.cn>
Wed, 6 Sep 2017 06:25:58 +0000 (14:25 +0800)
committerJens Axboe <axboe@kernel.dk>
Wed, 6 Sep 2017 14:17:33 +0000 (08:17 -0600)
commit89b1fc54c257104df007c5888e3705e52b973d45
tree5715e1e0f9092a2792935242f4fee19e2c4ff5b9
parent77fa100f27475d08a569b9d51c17722130f089e7
bcache: increase the number of open buckets

In currently, we only alloc 6 open buckets for each cache set,
but in usually, we always attach about 10 or so backend devices for
each cache set, and the each bcache device are always accessed by
about 10 or so threads in top application layer. So 6 open buckets
are too few, It has led to that each of the same thread write data
to different buckets, which would cause low efficiency write-back,
and also cause buckets inefficient, and would be Very easy to run
out of.

I add debug message in bch_open_buckets_alloc() to print alloc bucket
info, and test with ten bcache devices with a cache set, and each
bcache device is accessed by ten threads.

From the debug message, we can see that, after the modification, One
bucket is more likely to assign to the same thread, and the data from
the same thread are more likely to write the same bucket. Usually the
same thread always write/read the same backend device, so it is good
for write-back and also promote the usage efficiency of buckets.

Signed-off-by: Tang Junhui <tang.junhui@zte.com.cn>
Reviewed-by: Coly Li <colyli@suse.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/md/bcache/alloc.c