summaryrefslogtreecommitdiff
path: root/fs/bcachefs/trace.h
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2023-04-20 22:24:07 +0300
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-23 00:10:00 +0300
commit5a21764db13877eb1166baf12d2782ebb38b196e (patch)
treef539469217a371d21b34fbaf443d620f83aac463 /fs/bcachefs/trace.h
parent09ebfa61130edaa990c0f1865fe2fa536d67c313 (diff)
downloadlinux-5a21764db13877eb1166baf12d2782ebb38b196e.tar.xz
bcachefs: Improve move path tracepoints
Move path tracepoints now include the key being moved. Also, add new tracepoints for the start of move_extent, and evacuate_bucket. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/trace.h')
-rw-r--r--fs/bcachefs/trace.h57
1 files changed, 39 insertions, 18 deletions
diff --git a/fs/bcachefs/trace.h b/fs/bcachefs/trace.h
index bbe8eb7a29eb..8027c2a14199 100644
--- a/fs/bcachefs/trace.h
+++ b/fs/bcachefs/trace.h
@@ -33,23 +33,18 @@ DECLARE_EVENT_CLASS(bpos,
);
DECLARE_EVENT_CLASS(bkey,
- TP_PROTO(const struct bkey *k),
- TP_ARGS(k),
+ TP_PROTO(struct bch_fs *c, const char *k),
+ TP_ARGS(c, k),
TP_STRUCT__entry(
- __field(u64, inode )
- __field(u64, offset )
- __field(u32, size )
+ __string(k, k )
),
TP_fast_assign(
- __entry->inode = k->p.inode;
- __entry->offset = k->p.offset;
- __entry->size = k->size;
+ __assign_str(k, k);
),
- TP_printk("%llu:%llu len %u", __entry->inode,
- __entry->offset, __entry->size)
+ TP_printk("%s", __get_str(k))
);
DECLARE_EVENT_CLASS(btree_node,
@@ -667,19 +662,45 @@ TRACE_EVENT(bucket_invalidate,
/* Moving IO */
+TRACE_EVENT(bucket_evacuate,
+ TP_PROTO(struct bch_fs *c, struct bpos *bucket),
+ TP_ARGS(c, bucket),
+
+ TP_STRUCT__entry(
+ __field(dev_t, dev )
+ __field(u32, dev_idx )
+ __field(u64, bucket )
+ ),
+
+ TP_fast_assign(
+ __entry->dev = c->dev;
+ __entry->dev_idx = bucket->inode;
+ __entry->bucket = bucket->offset;
+ ),
+
+ TP_printk("%d:%d %u:%llu",
+ MAJOR(__entry->dev), MINOR(__entry->dev),
+ __entry->dev_idx, __entry->bucket)
+);
+
+DEFINE_EVENT(bkey, move_extent,
+ TP_PROTO(struct bch_fs *c, const char *k),
+ TP_ARGS(c, k)
+);
+
DEFINE_EVENT(bkey, move_extent_read,
- TP_PROTO(const struct bkey *k),
- TP_ARGS(k)
+ TP_PROTO(struct bch_fs *c, const char *k),
+ TP_ARGS(c, k)
);
DEFINE_EVENT(bkey, move_extent_write,
- TP_PROTO(const struct bkey *k),
- TP_ARGS(k)
+ TP_PROTO(struct bch_fs *c, const char *k),
+ TP_ARGS(c, k)
);
DEFINE_EVENT(bkey, move_extent_finish,
- TP_PROTO(const struct bkey *k),
- TP_ARGS(k)
+ TP_PROTO(struct bch_fs *c, const char *k),
+ TP_ARGS(c, k)
);
TRACE_EVENT(move_extent_fail,
@@ -700,8 +721,8 @@ TRACE_EVENT(move_extent_fail,
);
DEFINE_EVENT(bkey, move_extent_alloc_mem_fail,
- TP_PROTO(const struct bkey *k),
- TP_ARGS(k)
+ TP_PROTO(struct bch_fs *c, const char *k),
+ TP_ARGS(c, k)
);
TRACE_EVENT(move_data,