summaryrefslogtreecommitdiff
path: root/fs/bcachefs/journal_reclaim.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2021-03-25 06:37:33 +0300
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-23 00:08:57 +0300
commit331194a230f5fb266a64880e905c0364aa834964 (patch)
tree6a838a4d76a001463671e54da58b9a1f1660f066 /fs/bcachefs/journal_reclaim.c
parent2649b514b6cad329da0a4c8cafbd48c32bbc1b9d (diff)
downloadlinux-331194a230f5fb266a64880e905c0364aa834964.tar.xz
bcachefs: btree key cache locking improvements
The btree key cache mutex was becoming a significant bottleneck - it was mainly used to protect the lists of dirty, clean and freed cached keys. This patch eliminates the dirty and clean lists - instead, when we need to scan for keys to drop from the cache we iterate over the rhashtable, and thus we're able to remove most uses of that lock. Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/journal_reclaim.c')
-rw-r--r--fs/bcachefs/journal_reclaim.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/bcachefs/journal_reclaim.c b/fs/bcachefs/journal_reclaim.c
index 0a16343fb51a..3957312d12f2 100644
--- a/fs/bcachefs/journal_reclaim.c
+++ b/fs/bcachefs/journal_reclaim.c
@@ -610,8 +610,8 @@ static int __bch2_journal_reclaim(struct journal *j, bool direct)
j->prereserved.remaining,
atomic_read(&c->btree_cache.dirty),
c->btree_cache.used,
- c->btree_key_cache.nr_dirty,
- c->btree_key_cache.nr_keys);
+ atomic_long_read(&c->btree_key_cache.nr_dirty),
+ atomic_long_read(&c->btree_key_cache.nr_keys));
nr_flushed = journal_flush_pins(j, seq_to_flush, min_nr);