From 99314d7cc711b4105a9546e63a210ead0d3f6178 Mon Sep 17 00:00:00 2001 From: Filipe Manana Date: Thu, 23 Apr 2026 15:56:52 +0100 Subject: [PATCH] btrfs: tracepoints: add trace event for the start of a new transaction While tracing it's useful to know not just when a transaction is committed or aborted, but also when a new one is started. So add a trace event for transaction starts. Reviewed-by: Johannes Thumshirn Signed-off-by: Filipe Manana Signed-off-by: David Sterba --- fs/btrfs/transaction.c | 1 + include/trace/events/btrfs.h | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c index 277953906b91..9ff8792d7182 100644 --- a/fs/btrfs/transaction.c +++ b/fs/btrfs/transaction.c @@ -394,6 +394,7 @@ static noinline int join_transaction(struct btrfs_fs_info *fs_info, cur_trans->transid = fs_info->generation; fs_info->running_transaction = cur_trans; cur_trans->aborted = 0; + trace_btrfs_transaction_start(cur_trans); spin_unlock(&fs_info->trans_lock); return 0; diff --git a/include/trace/events/btrfs.h b/include/trace/events/btrfs.h index cb9b6188fcdd..e43528003848 100644 --- a/include/trace/events/btrfs.h +++ b/include/trace/events/btrfs.h @@ -32,6 +32,7 @@ struct btrfs_raid_bio; struct raid56_bio_trace_info; struct find_free_extent_ctl; struct btrfs_trans_handle; +struct btrfs_transaction; #define show_ref_type(type) \ __print_symbolic(type, \ @@ -181,6 +182,23 @@ FLUSH_STATES #define TP_printk_btrfs(fmt, args...) \ TP_printk("%pU: " fmt, __entry->fsid, args) +TRACE_EVENT(btrfs_transaction_start, + + TP_PROTO(const struct btrfs_transaction *trans), + + TP_ARGS(trans), + + TP_STRUCT__entry_btrfs( + __field( u64, generation ) + ), + + TP_fast_assign_btrfs(trans->fs_info, + __entry->generation = trans->transid; + ), + + TP_printk_btrfs("gen=%llu", __entry->generation) +); + TRACE_EVENT(btrfs_transaction_commit, TP_PROTO(const struct btrfs_trans_handle *trans),