bcachefs: Run btree key cache shrinker less aggressively
authorKent Overstreet <kent.overstreet@linux.dev>
Mon, 6 Nov 2023 14:53:14 +0000 (09:53 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Tue, 14 Nov 2023 02:45:01 +0000 (21:45 -0500)
commitc65c13f0eac61218c9ee4635c05661c0b9760e58
treeed2b34dcc4e115a692c45a7f2b1be27d1ad99907
parent1bd5bcc9f5eef968ed021d72b14a157be7abdb49
bcachefs: Run btree key cache shrinker less aggressively

The btree key cache maintains lists of items that have been freed, but
can't yet be reclaimed because a bch2_trans_relock() call might find
them - we're waiting for SRCU readers to release.

Previously, we wouldn't count these items against the number we're
attempting to scan for, which would mean we'd evict more live key cache
entries - doing quite a bit of potentially unecessary work.

With recent work to make sure we don't hold SRCU locks for too long, it
should be safe to count all the items on the freelists against number to
scan - even if we can't reclaim them yet, we will be able to soon.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/btree_key_cache.c
fs/bcachefs/btree_key_cache_types.h