summaryrefslogtreecommitdiff
path: root/fs/bcachefs/btree_key_cache_types.h
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2024-04-20 21:49:22 +0300
committerKent Overstreet <kent.overstreet@linux.dev>2024-05-09 00:29:20 +0300
commit5147b9ae768758982b196d1b259e6372e328955e (patch)
tree6da266b587c28905f152a4e12f4d9fa6f541526c /fs/bcachefs/btree_key_cache_types.h
parente4f2c4dfeeaeb70164967aa4abfa1190f7e61781 (diff)
downloadlinux-5147b9ae768758982b196d1b259e6372e328955e.tar.xz
bcachefs: Btree key cache instrumentation
It turns out the btree key cache shrinker wasn't actually reclaiming anything, prior to the previous patch. This adds instrumentation so that if we have further issues we can see what's going on. Specifically, sysfs internal/btree_key_cache is greatly expanded with new counters, and the SRCU sequence numbers of the first 10 entries on each pending freelist, and we also add trigger_btree_key_cache_shrink for testing without having to prune all the system caches. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/btree_key_cache_types.h')
-rw-r--r--fs/bcachefs/btree_key_cache_types.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/fs/bcachefs/btree_key_cache_types.h b/fs/bcachefs/btree_key_cache_types.h
index 290e4e57df5b..237e8bb3ac40 100644
--- a/fs/bcachefs/btree_key_cache_types.h
+++ b/fs/bcachefs/btree_key_cache_types.h
@@ -24,6 +24,14 @@ struct btree_key_cache {
atomic_long_t nr_freed;
atomic_long_t nr_keys;
atomic_long_t nr_dirty;
+
+ /* shrinker stats */
+ unsigned long requested_to_free;
+ unsigned long freed;
+ unsigned long moved_to_freelist;
+ unsigned long skipped_dirty;
+ unsigned long skipped_accessed;
+ unsigned long skipped_lock_fail;
};
struct bkey_cached_key {