summaryrefslogtreecommitdiff
path: root/fs/bcachefs/trace.h
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2022-04-04 03:36:32 +0300
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-23 00:09:30 +0300
commit7c7e071d90ac278e462640570d739dd165d3acd0 (patch)
treecf32fcc59e4b382afe0776565de25bffebea0021 /fs/bcachefs/trace.h
parent4254f5bf6e3d62ab7108a556d5afc54188e17041 (diff)
downloadlinux-7c7e071d90ac278e462640570d739dd165d3acd0.tar.xz
bcachefs: Don't normalize to pages in btree cache shrinker
This behavior dates from the early, early days of bcache, and upon further delving appears to not make any sense. The shrinker only works in terms of 'objects' of unknown size; normalizing to pages only had the effect of changing the batch size, which we could do directly - if we wanted; we probably don't. Normalizing to pages meant our batch size was very small, which seems to have been keeping us from doing as much shrinking as we should be under heavy memory pressure; this patch appears to alleviate some OOMs we've been seeing. Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Diffstat (limited to 'fs/bcachefs/trace.h')
-rw-r--r--fs/bcachefs/trace.h28
1 files changed, 10 insertions, 18 deletions
diff --git a/fs/bcachefs/trace.h b/fs/bcachefs/trace.h
index eeacb5291764..de6a17c92f5f 100644
--- a/fs/bcachefs/trace.h
+++ b/fs/bcachefs/trace.h
@@ -376,31 +376,23 @@ DEFINE_EVENT(btree_node, btree_set_root,
);
TRACE_EVENT(btree_cache_scan,
- TP_PROTO(unsigned long nr_to_scan_pages,
- unsigned long nr_to_scan_nodes,
- unsigned long can_free_nodes,
- long ret),
- TP_ARGS(nr_to_scan_pages, nr_to_scan_nodes, can_free_nodes, ret),
+ TP_PROTO(long nr_to_scan, long can_free, long ret),
+ TP_ARGS(nr_to_scan, can_free, ret),
TP_STRUCT__entry(
- __field(unsigned long, nr_to_scan_pages )
- __field(unsigned long, nr_to_scan_nodes )
- __field(unsigned long, can_free_nodes )
- __field(long, ret )
+ __field(long, nr_to_scan )
+ __field(long, can_free )
+ __field(long, ret )
),
TP_fast_assign(
- __entry->nr_to_scan_pages = nr_to_scan_pages;
- __entry->nr_to_scan_nodes = nr_to_scan_nodes;
- __entry->can_free_nodes = can_free_nodes;
- __entry->ret = ret;
+ __entry->nr_to_scan = nr_to_scan;
+ __entry->can_free = can_free;
+ __entry->ret = ret;
),
- TP_printk("scanned for %lu pages, %lu nodes, can free %lu nodes, ret %li",
- __entry->nr_to_scan_pages,
- __entry->nr_to_scan_nodes,
- __entry->can_free_nodes,
- __entry->ret)
+ TP_printk("scanned for %li nodes, can free %li, ret %li",
+ __entry->nr_to_scan, __entry->can_free, __entry->ret)
);
TRACE_EVENT(btree_node_relock_fail,