From: Kent Overstreet Date: Wed, 28 May 2025 01:54:22 +0000 (-0400) Subject: bcachefs: io_move_evacuate_bucket tracepoint, counter X-Git-Tag: v6.16-rc1~48^2~57 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c7897b5055df20e954c269897052c9397e0fff1a;p=thirdparty%2Fkernel%2Flinux.git bcachefs: io_move_evacuate_bucket tracepoint, counter Signed-off-by: Kent Overstreet --- diff --git a/fs/bcachefs/move.c b/fs/bcachefs/move.c index f67656fbd849a..4dd779b7b6d27 100644 --- a/fs/bcachefs/move.c +++ b/fs/bcachefs/move.c @@ -95,6 +95,19 @@ trace_io_move_pred2(struct bch_fs *c, struct bkey_s_c k, printbuf_exit(&buf); } +static noinline void +trace_io_move_evacuate_bucket2(struct bch_fs *c, struct bpos bucket, int gen) +{ + struct printbuf buf = PRINTBUF; + + prt_printf(&buf, "bucket: "); + bch2_bpos_to_text(&buf, bucket); + prt_printf(&buf, " gen: %i\n", gen); + + trace_io_move_evacuate_bucket(c, buf.buf); + printbuf_exit(&buf); +} + struct moving_io { struct list_head read_list; struct list_head io_list; @@ -1059,8 +1072,13 @@ int bch2_evacuate_bucket(struct moving_context *ctxt, struct bpos bucket, int gen, struct data_update_opts data_opts) { + struct bch_fs *c = ctxt->trans->c; struct evacuate_bucket_arg arg = { bucket, gen, data_opts, }; + count_event(c, io_move_evacuate_bucket); + if (trace_io_move_evacuate_bucket_enabled()) + trace_io_move_evacuate_bucket2(c, bucket, gen); + return __bch2_move_data_phys(ctxt, bucket_in_flight, bucket.inode, bucket.offset, diff --git a/fs/bcachefs/sb-counters_format.h b/fs/bcachefs/sb-counters_format.h index 7c0c9c842b4e7..b868702a431a5 100644 --- a/fs/bcachefs/sb-counters_format.h +++ b/fs/bcachefs/sb-counters_format.h @@ -26,6 +26,7 @@ enum counters_flags { x(io_move_write_fail, 82, TYPE_COUNTER) \ x(io_move_start_fail, 39, TYPE_COUNTER) \ x(io_move_created_rebalance, 83, TYPE_COUNTER) \ + x(io_move_evacuate_bucket, 84, TYPE_COUNTER) \ x(bucket_invalidate, 3, TYPE_COUNTER) \ x(bucket_discard, 4, TYPE_COUNTER) \ x(bucket_discard_fast, 79, TYPE_COUNTER) \ diff --git a/fs/bcachefs/trace.h b/fs/bcachefs/trace.h index 8f942913cec36..eb3ca963fc582 100644 --- a/fs/bcachefs/trace.h +++ b/fs/bcachefs/trace.h @@ -1441,6 +1441,11 @@ DEFINE_EVENT(fs_str, io_move_created_rebalance, TP_ARGS(c, str) ); +DEFINE_EVENT(fs_str, io_move_evacuate_bucket, + TP_PROTO(struct bch_fs *c, const char *str), + TP_ARGS(c, str) +); + TRACE_EVENT(error_downcast, TP_PROTO(int bch_err, int std_err, unsigned long ip), TP_ARGS(bch_err, std_err, ip),