linux/drivers/md/bcache
Tang Junhui 7f4a59de28 bcache: calculate the number of incremental GC nodes according to the total of btree nodes
This patch base on "[PATCH] bcache: finish incremental GC".

Since incremental GC would stop 100ms when front side I/O comes, so when
there are many btree nodes, if GC only processes constant (100) nodes each
time, GC would last a long time, and the front I/Os would run out of the
buckets (since no new bucket can be allocated during GC), and I/Os be
blocked again.

So GC should not process constant nodes, but varied nodes according to the
number of btree nodes. In this patch, GC is divided into constant (100)
times, so when there are many btree nodes, GC can process more nodes each
time, otherwise GC will process less nodes each time (but no less than
MIN_GC_NODES).

Signed-off-by: Tang Junhui <tang.junhui@zte.com.cn>
Signed-off-by: Coly Li <colyli@suse.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2018-07-27 09:15:46 -06:00
..
alloc.c bcache: add wait_for_kthread_stop() in bch_allocator_thread() 2018-05-03 08:35:13 -06:00
bcache.h bcache: finish incremental GC 2018-07-27 09:15:46 -06:00
bset.c bcache: convert to bioset_init()/mempool_init() 2018-05-30 15:33:32 -06:00
bset.h bcache: convert to bioset_init()/mempool_init() 2018-05-30 15:33:32 -06:00
btree.c bcache: calculate the number of incremental GC nodes according to the total of btree nodes 2018-07-27 09:15:46 -06:00
btree.h Merge branch 'for-4.15/block' of git://git.kernel.dk/linux-block 2017-11-14 15:32:19 -08:00
closure.c bcache: Fix kernel-doc warnings 2018-03-18 20:15:20 -06:00
closure.h bcache: move closure debug file into debug directory 2018-03-18 20:15:20 -06:00
debug.c bcache: don't clone bio in bch_data_verify 2018-07-24 14:43:19 -06:00
debug.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
extents.c docs: Fix some broken references 2018-06-15 18:10:01 -03:00
extents.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
io.c bcache: convert to bioset_init()/mempool_init() 2018-05-30 15:33:32 -06:00
journal.c bcache: Reduce the number of sparse complaints about lock imbalances 2018-03-18 20:15:20 -06:00
journal.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Kconfig docs: Fix some broken references 2018-06-15 18:10:01 -03:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
movinggc.c block: move bio_alloc_pages() to bcache 2018-01-06 09:18:00 -07:00
request.c bcache: finish incremental GC 2018-07-27 09:15:46 -06:00
request.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
stats.c md: Convert timers to use timer_setup() 2017-11-14 20:11:57 -07:00
stats.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
super.c bcache: simplify the calculation of the total amount of flash dirty data 2018-07-27 09:15:46 -06:00
sysfs.c treewide: Use array_size() in vmalloc() 2018-06-12 16:19:22 -07:00
sysfs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
trace.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
util.c bcache: Move couple of functions to sysfs.c 2018-05-28 14:53:20 -06:00
util.h bcache: Move couple of functions to sysfs.c 2018-05-28 14:53:20 -06:00
writeback.c bcache: simplify the calculation of the total amount of flash dirty data 2018-07-27 09:15:46 -06:00
writeback.h bcache: simplify the calculation of the total amount of flash dirty data 2018-07-27 09:15:46 -06:00