91 lines
2.6 KiB
Diff
91 lines
2.6 KiB
Diff
From 0694b43ff91f13b81474ff335b00b560dcb94ea9 Mon Sep 17 00:00:00 2001
|
|
From: Kent Overstreet <kent.overstreet@linux.dev>
|
|
Date: Fri, 13 Dec 2024 05:43:00 -0500
|
|
Subject: [PATCH 209/233] bcachefs: trace_key_cache_fill
|
|
Content-Type: text/plain; charset="utf-8"
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
|
|
Signed-off-by: Alexander Miroshnichenko <alex@millerson.name>
|
|
---
|
|
fs/bcachefs/btree_key_cache.c | 10 ++++++++++
|
|
fs/bcachefs/trace.h | 27 ++++++++++++++++++++++-----
|
|
2 files changed, 32 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/fs/bcachefs/btree_key_cache.c b/fs/bcachefs/btree_key_cache.c
|
|
index 3bd40ea0fa3d..4eba2871f289 100644
|
|
--- a/fs/bcachefs/btree_key_cache.c
|
|
+++ b/fs/bcachefs/btree_key_cache.c
|
|
@@ -309,6 +309,16 @@ static noinline int btree_key_cache_fill(struct btree_trans *trans,
|
|
ret = btree_key_cache_create(trans, ck_path, k);
|
|
if (ret)
|
|
goto err;
|
|
+
|
|
+ if (trace_key_cache_fill_enabled()) {
|
|
+ struct printbuf buf = PRINTBUF;
|
|
+
|
|
+ bch2_bpos_to_text(&buf, ck_path->pos);
|
|
+ prt_char(&buf, ' ');
|
|
+ bch2_bkey_val_to_text(&buf, trans->c, k);
|
|
+ trace_key_cache_fill(trans, buf.buf);
|
|
+ printbuf_exit(&buf);
|
|
+ }
|
|
out:
|
|
/* We're not likely to need this iterator again: */
|
|
bch2_set_btree_iter_dontneed(&iter);
|
|
diff --git a/fs/bcachefs/trace.h b/fs/bcachefs/trace.h
|
|
index 11e6547f91d6..9d40b7d4ea29 100644
|
|
--- a/fs/bcachefs/trace.h
|
|
+++ b/fs/bcachefs/trace.h
|
|
@@ -1338,6 +1338,12 @@ TRACE_EVENT(trans_restart_key_cache_key_realloced,
|
|
__entry->new_u64s)
|
|
);
|
|
|
|
+DEFINE_EVENT(transaction_event, trans_restart_write_buffer_flush,
|
|
+ TP_PROTO(struct btree_trans *trans,
|
|
+ unsigned long caller_ip),
|
|
+ TP_ARGS(trans, caller_ip)
|
|
+);
|
|
+
|
|
TRACE_EVENT(path_downgrade,
|
|
TP_PROTO(struct btree_trans *trans,
|
|
unsigned long caller_ip,
|
|
@@ -1374,10 +1380,21 @@ TRACE_EVENT(path_downgrade,
|
|
__entry->pos_snapshot)
|
|
);
|
|
|
|
-DEFINE_EVENT(transaction_event, trans_restart_write_buffer_flush,
|
|
- TP_PROTO(struct btree_trans *trans,
|
|
- unsigned long caller_ip),
|
|
- TP_ARGS(trans, caller_ip)
|
|
+TRACE_EVENT(key_cache_fill,
|
|
+ TP_PROTO(struct btree_trans *trans, const char *key),
|
|
+ TP_ARGS(trans, key),
|
|
+
|
|
+ TP_STRUCT__entry(
|
|
+ __array(char, trans_fn, 32 )
|
|
+ __string(key, key )
|
|
+ ),
|
|
+
|
|
+ TP_fast_assign(
|
|
+ strscpy(__entry->trans_fn, trans->fn, sizeof(__entry->trans_fn));
|
|
+ __assign_str(key);
|
|
+ ),
|
|
+
|
|
+ TP_printk("%s %s", __entry->trans_fn, __get_str(key))
|
|
);
|
|
|
|
TRACE_EVENT(write_buffer_flush,
|
|
@@ -1443,7 +1460,7 @@ TRACE_EVENT(write_buffer_maybe_flush,
|
|
TP_STRUCT__entry(
|
|
__array(char, trans_fn, 32 )
|
|
__field(unsigned long, caller_ip )
|
|
- __string(key, key )
|
|
+ __string(key, key )
|
|
),
|
|
|
|
TP_fast_assign(
|
|
--
|
|
2.45.2
|
|
|