Commit b5e2c2ff authored by Johannes Thumshirn's avatar Johannes Thumshirn Committed by David Sterba
Browse files

btrfs: tracepoints: add events for raid stripe tree



Add trace events for raid-stripe-tree operations.

Signed-off-by: default avatarJohannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 9f9918a8
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -59,6 +59,9 @@ int btrfs_delete_raid_extent(struct btrfs_trans_handle *trans, u64 start, u64 le
		if (found_end <= start)
			break;

		trace_btrfs_raid_extent_delete(fs_info, start, end,
					       found_start, found_end);

		ASSERT(found_start >= start && found_end <= end);
		ret = btrfs_del_item(trans, stripe_root, path);
		if (ret)
@@ -90,6 +93,8 @@ static int btrfs_insert_one_raid_extent(struct btrfs_trans_handle *trans,
		return -ENOMEM;
	}

	trace_btrfs_insert_one_raid_extent(fs_info, bioc->logical, bioc->size,
					   num_stripes);
	btrfs_set_stack_stripe_extent_encoding(stripe_extent, encoding);
	for (int i = 0; i < num_stripes; i++) {
		u64 devid = bioc->stripes[i].dev->devid;
@@ -242,6 +247,9 @@ int btrfs_get_raid_extent_offset(struct btrfs_fs_info *fs_info,

		stripe->physical = physical + offset;

		trace_btrfs_get_raid_extent_offset(fs_info, logical, *length,
						   stripe->physical, devid);

		ret = 0;
		goto free_path;
	}
+76 −0
Original line number Diff line number Diff line
@@ -2497,6 +2497,82 @@ DEFINE_EVENT(btrfs_raid56_bio, raid56_write,
	TP_ARGS(rbio, bio, trace_info)
);

TRACE_EVENT(btrfs_insert_one_raid_extent,

	TP_PROTO(const struct btrfs_fs_info *fs_info, u64 logical, u64 length,
		 int num_stripes),

	TP_ARGS(fs_info, logical, length, num_stripes),

	TP_STRUCT__entry_btrfs(
		__field(	u64,	logical		)
		__field(	u64,	length		)
		__field(	int,	num_stripes	)
	),

	TP_fast_assign_btrfs(fs_info,
		__entry->logical	= logical;
		__entry->length		= length;
		__entry->num_stripes	= num_stripes;
	),

	TP_printk_btrfs("logical=%llu length=%llu num_stripes=%d",
			__entry->logical, __entry->length,
			__entry->num_stripes)
);

TRACE_EVENT(btrfs_raid_extent_delete,

	TP_PROTO(const struct btrfs_fs_info *fs_info, u64 start, u64 end,
		 u64 found_start, u64 found_end),

	TP_ARGS(fs_info, start, end, found_start, found_end),

	TP_STRUCT__entry_btrfs(
		__field(	u64,	start		)
		__field(	u64,	end		)
		__field(	u64,	found_start	)
		__field(	u64,	found_end	)
	),

	TP_fast_assign_btrfs(fs_info,
		__entry->start		= start;
		__entry->end		= end;
		__entry->found_start	= found_start;
		__entry->found_end	= found_end;
	),

	TP_printk_btrfs("start=%llu end=%llu found_start=%llu found_end=%llu",
			__entry->start, __entry->end, __entry->found_start,
			__entry->found_end)
);

TRACE_EVENT(btrfs_get_raid_extent_offset,

	TP_PROTO(const struct btrfs_fs_info *fs_info, u64 logical, u64 length,
		 u64 physical, u64 devid),

	TP_ARGS(fs_info, logical, length, physical, devid),

	TP_STRUCT__entry_btrfs(
		__field(	u64,	logical		)
		__field(	u64,	length		)
		__field(	u64,	physical	)
		__field(	u64,	devid		)
	),

	TP_fast_assign_btrfs(fs_info,
		__entry->logical	= logical;
		__entry->length		= length;
		__entry->physical	= physical;
		__entry->devid		= devid;
	),

	TP_printk_btrfs("logical=%llu length=%llu physical=%llu devid=%llu",
			__entry->logical, __entry->length, __entry->physical,
			__entry->devid)
);

#endif /* _TRACE_BTRFS_H */

/* This part must be outside protection */