kernel_optimize_test/drivers/md/bcache
Coly Li 1df3877ff6 bcache: shrink btree node cache after bch_btree_check()
When cache set starts, bch_btree_check() will check all bkeys on cache
device by calculating the checksum. This operation will consume a huge
number of system memory if there are a lot of data cached. Since bcache
uses its own mca cache to maintain all its read-in btree nodes, and only
releases the cache space when system memory manage code starts to shrink
caches. Then before memory manager code to call the mca cache shrinker
callback, bcache mca cache will compete memory resource with user space
application, which may have nagive effect to performance of user space
workloads (e.g. data base, or I/O service of distributed storage node).

This patch tries to call bcache mca shrinker routine to proactively
release mca cache memory, to decrease the memory pressure of system and
avoid negative effort of the overall system I/O performance.

Signed-off-by: Coly Li <colyli@suse.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-06-28 07:39:17 -06:00
..
alloc.c bcache: check CACHE_SET_IO_DISABLE in allocator code 2019-06-28 07:39:15 -06:00
bcache.h bcache: add return value check to bch_cached_dev_run() 2019-06-28 07:39:14 -06:00
bset.c bcache: make bset_search_tree() be more understandable 2019-06-28 07:39:15 -06:00
bset.h bcache: fix stack corruption by PRECEDING_KEY() 2019-06-13 03:09:14 -06:00
btree.c bcache: remove unncessary code in bch_btree_keys_init() 2019-06-28 07:39:15 -06:00
btree.h bcache: introduce force_wake_up_gc() 2018-12-13 08:15:54 -07:00
closure.c bcache: add missing SPDX header 2018-08-11 15:46:42 -06:00
closure.h bcache: fix typo in code comments of closure_return_with_destructor() 2018-10-08 08:19:43 -06:00
debug.c bcache: do not check if debug dentry is ERR or NULL explicitly on remove 2018-12-13 08:15:54 -07:00
debug.h bcache: add identifier names to arguments of function definitions 2018-08-11 15:46:41 -06:00
extents.c bcache: treat stale && dirty keys as bad keys 2019-02-09 07:18:31 -07:00
extents.h bcache: add identifier names to arguments of function definitions 2018-08-11 15:46:41 -06:00
io.c bcache: ignore read-ahead request failure on backing device 2019-06-28 07:39:14 -06:00
journal.c bcache: set largest seq to ja->seq[bucket_index] in journal_read_bucket() 2019-06-28 07:39:17 -06:00
journal.h bcache: add identifier names to arguments of function definitions 2018-08-11 15:46:41 -06:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile
movinggc.c bcache: style fix to add a blank line after declarations 2018-08-11 15:46:41 -06:00
request.c bcache: Clean up bch_get_congested() 2019-04-24 10:56:27 -06:00
request.h bcache: Clean up bch_get_congested() 2019-04-24 10:56:27 -06:00
stats.c bcache: not use hard coded memset size in bch_cache_accounting_clear() 2019-02-09 07:18:31 -07:00
stats.h bcache: add identifier names to arguments of function definitions 2018-08-11 15:46:41 -06:00
super.c bcache: shrink btree node cache after bch_btree_check() 2019-06-28 07:39:17 -06:00
sysfs.c bcache: avoid a deadlock in bcache_reboot() 2019-06-28 07:39:16 -06:00
sysfs.h bcache: add sysfs_strtoul_bool() for setting bit-field variables 2019-02-09 07:18:32 -07:00
trace.c
util.c bcache: avoid to use bio_for_each_segment_all() in bch_bio_alloc_pages() 2019-02-15 08:40:11 -07:00
util.h bcache: Clean up bch_get_congested() 2019-04-24 10:56:27 -06:00
writeback.c bcache: fix potential deadlock in cached_def_free() 2019-06-28 07:39:16 -06:00
writeback.h bcache: never writeback a discard operation 2019-02-09 07:18:31 -07:00