Signed-off-by: Daniel Hill <[email protected]>
---
fs/bcachefs/move.c | 11 +++++++++--
fs/bcachefs/trace.h | 12 +++++++++---
2 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/fs/bcachefs/move.c b/fs/bcachefs/move.c
index 40a8305b3860..fe8660ed50f7 100644
--- a/fs/bcachefs/move.c
+++ b/fs/bcachefs/move.c
@@ -711,8 +711,9 @@ int bch2_evacuate_bucket(struct moving_context *ctxt,
u64 fragmentation;
struct bpos bp_pos = POS_MIN;
int ret = 0;
+ struct printbuf buf = PRINTBUF;
- trace_bucket_evacuate(c, &bucket);
+ trace_evacuate_bucket_start(c, &bucket);
bch2_bkey_buf_init(&sk);
@@ -843,8 +844,14 @@ int bch2_evacuate_bucket(struct moving_context *ctxt,
bp_pos = bpos_nosnap_successor(bp_pos);
}
- trace_evacuate_bucket(c, &bucket, dirty_sectors, bucket_size,
fragmentation, ret);
+ trace_evacuate_bucket_finish(c, &bucket, gen, dirty_sectors,
+ bucket_size, fragmentation, ret);
+ goto exit;
err:
+ prt_printf(&buf, "%llu:%llu ret %s", bucket.inode, bucket.offset,
bch2_err_str(ret));
+ trace_evacuate_bucket_fail(c, buf.buf);
+exit:
+ printbuf_exit(&buf);
bch2_bkey_buf_exit(&sk, c);
return ret;
}
diff --git a/fs/bcachefs/trace.h b/fs/bcachefs/trace.h
index f48c727d89aa..51a1f47b310c 100644
--- a/fs/bcachefs/trace.h
+++ b/fs/bcachefs/trace.h
@@ -791,7 +791,7 @@ TRACE_EVENT(bucket_invalidate,
/* Moving IO */
-TRACE_EVENT(bucket_evacuate,
+TRACE_EVENT(evacuate_bucket_start,
TP_PROTO(struct bch_fs *c, struct bpos *bucket),
TP_ARGS(c, bucket),
@@ -812,6 +812,11 @@ TRACE_EVENT(bucket_evacuate,
__entry->dev_idx, __entry->bucket)
);
+DEFINE_EVENT(fs_str, evacuate_bucket_fail,
+ TP_PROTO(struct bch_fs *c, const char *k),
+ TP_ARGS(c, k)
+);
+
DEFINE_EVENT(fs_str, move_extent,
TP_PROTO(struct bch_fs *c, const char *str),
TP_ARGS(c, str)
@@ -902,15 +907,16 @@ TRACE_EVENT(evacuate_bucket_finish,
__entry->dev = c->dev;
__entry->member = bucket->inode;
__entry->bucket = bucket->offset;
+ __entry->gen = gen;
__entry->sectors = sectors;
__entry->bucket_size = bucket_size;
__entry->fragmentation = fragmentation;
__entry->ret = ret;
),
- TP_printk("%d,%d %llu:%llu sectors %u/%u fragmentation %llu ret %i",
+ TP_printk("%d,%d %llu:%llu gen %u sectors %u/%u fragmentation %llu ret
%i",
MAJOR(__entry->dev), MINOR(__entry->dev),
- __entry->member, __entry->bucket,
+ __entry->member, __entry->bucket, __entry->gen,
__entry->sectors, __entry->bucket_size,
__entry->fragmentation, __entry->ret)
);
--
2.43.0