mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 12:11:40 +00:00
bcachefs: Leave a buffer in the btree key cache to avoid lock thrashing
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
2760bfe388
commit
bf2b356afd
@ -915,6 +915,14 @@ static unsigned long bch2_btree_key_cache_count(struct shrinker *shrink,
|
||||
long nr = atomic_long_read(&bc->nr_keys) -
|
||||
atomic_long_read(&bc->nr_dirty);
|
||||
|
||||
/*
|
||||
* Avoid hammering our shrinker too much if it's nearly empty - the
|
||||
* shrinker code doesn't take into account how big our cache is, if it's
|
||||
* mostly empty but the system is under memory pressure it causes nasty
|
||||
* lock contention:
|
||||
*/
|
||||
nr -= 128;
|
||||
|
||||
return max(0L, nr);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user