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 <johannes.thumshirn@wdc.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
Filipe Manana
2026-04-23 15:56:52 +01:00
committed by David Sterba
parent b4bbe7d759
commit 99314d7cc7
2 changed files with 19 additions and 0 deletions

View File

@@ -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;

View File

@@ -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),