diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2023-04-20 15:24:07 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-22 17:10:00 -0400 |
commit | 5a21764db13877eb1166baf12d2782ebb38b196e (patch) | |
tree | f539469217a371d21b34fbaf443d620f83aac463 /fs/bcachefs/trace.h | |
parent | 09ebfa61130edaa990c0f1865fe2fa536d67c313 (diff) |
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.h | 57 |
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, |