]> git.baikalelectronics.ru Git - kernel.git/commit
bcache: update bucket_in_use in real time
authorTang Junhui <tang.junhui@zte.com.cn>
Mon, 30 Oct 2017 21:46:33 +0000 (14:46 -0700)
committerJens Axboe <axboe@kernel.dk>
Mon, 30 Oct 2017 21:57:54 +0000 (15:57 -0600)
commitaa12e908259366c5dbb1d8774256e7d299225ab6
tree5aaefcfaf4f1a3679e85b831c2d685fff30681c3
parent0e30a037fd4217bdbf7dca9a093dfe48ccd03c4e
bcache: update bucket_in_use in real time

bucket_in_use is updated in gc thread which triggered by invalidating or
writing sectors_to_gc dirty data, It's a long interval. Therefore, when we
use it to compare with the threshold, it is often not timely, which leads
to inaccurate judgment and often results in bucket depletion.

We have send a patch before, by the means of updating bucket_in_use
periodically In gc thread, which Coly thought that would lead high
latency, In this patch, we add avail_nbuckets to record the count of
available buckets, and we calculate bucket_in_use when alloc or free
bucket in real time.

[edited by ML: eliminated some whitespace errors]

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