[lttng-dev] [PATCH lttng-modules 2/3] Add btrfs file item tracepoints
Michael Jeanson
mjeanson at efficios.com
Thu Jun 7 15:48:31 EDT 2018
See upstream commit:
commit 09ed2f165cb3449237dec842b3564044e12d22cb
Author: Liu Bo <bo.li.liu at oracle.com>
Date: Fri Mar 10 11:09:48 2017 -0800
Btrfs: add file item tracepoints
While debugging truncate problems, I found that these tracepoints could
help us quickly know what went wrong.
Two sets of tracepoints are created to track regular/prealloc file item
and inline file item respectively, I put inline as a separate one since
what inline file items cares about are way less than the regular one.
This adds four tracepoints:
- btrfs_get_extent_show_fi_regular
- btrfs_get_extent_show_fi_inline
- btrfs_truncate_show_fi_regular
- btrfs_truncate_show_fi_inline
Signed-off-by: Michael Jeanson <mjeanson at efficios.com>
---
instrumentation/events/lttng-module/btrfs.h | 83 +++++++++++++++++++++
1 file changed, 83 insertions(+)
diff --git a/instrumentation/events/lttng-module/btrfs.h b/instrumentation/events/lttng-module/btrfs.h
index c413e92..6ef21e0 100644
--- a/instrumentation/events/lttng-module/btrfs.h
+++ b/instrumentation/events/lttng-module/btrfs.h
@@ -291,6 +291,89 @@ LTTNG_TRACEPOINT_EVENT(btrfs_handle_em_exist,
)
#endif
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0))
+LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__file_extent_item_regular,
+
+ TP_PROTO(struct btrfs_inode *bi, struct extent_buffer *l,
+ struct btrfs_file_extent_item *fi, u64 start),
+
+ TP_ARGS(bi, l, fi, start),
+
+ TP_FIELDS(
+ ctf_array(u8, fsid, bi->root->fs_info, BTRFS_FSID_SIZE)
+ ctf_integer(u64, root_obj, bi->root->objectid)
+ ctf_integer(u64, ino, btrfs_ino(bi))
+ ctf_integer(loff_t, isize, bi->vfs_inode.i_size)
+ ctf_integer(u64, disk_isize, bi->disk_i_size)
+ ctf_integer(u64, num_bytes, btrfs_file_extent_num_bytes(l, fi))
+ ctf_integer(u64, ram_bytes, btrfs_file_extent_ram_bytes(l, fi))
+ ctf_integer(u64, disk_bytenr, btrfs_file_extent_disk_bytenr(l, fi))
+ ctf_integer(u64, disk_num_bytes, btrfs_file_extent_disk_num_bytes(l, fi))
+ ctf_integer(u64, extent_offset, btrfs_file_extent_offset(l, fi))
+ ctf_integer(u8, extent_type, btrfs_file_extent_type(l, fi))
+ ctf_integer(u8, compression, btrfs_file_extent_compression(l, fi))
+ ctf_integer(u64, extent_start, start)
+ ctf_integer(u64, extent_end, (start + btrfs_file_extent_num_bytes(l, fi)))
+ )
+)
+
+LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__file_extent_item_inline,
+
+ TP_PROTO(struct btrfs_inode *bi, struct extent_buffer *l,
+ struct btrfs_file_extent_item *fi, int slot, u64 start),
+
+ TP_ARGS(bi, l, fi, slot, start),
+
+ TP_FIELDS(
+ ctf_array(u8, fsid, bi->root->fs_info, BTRFS_FSID_SIZE)
+ ctf_integer(u64, root_obj, bi->root->objectid)
+ ctf_integer(u64, ino, btrfs_ino(bi))
+ ctf_integer(loff_t, isize, bi->vfs_inode.i_size)
+ ctf_integer(u64, disk_isize, bi->disk_i_size)
+ ctf_integer(u8, extent_type, btrfs_file_extent_type(l, fi))
+ ctf_integer(u8, compression, btrfs_file_extent_compression(l, fi))
+ ctf_integer(u64, extent_start, start)
+ ctf_integer(u64, extent_end, (start + btrfs_file_extent_inline_len(l, slot, fi)))
+ )
+)
+
+LTTNG_TRACEPOINT_EVENT_INSTANCE(
+ btrfs__file_extent_item_regular, btrfs_get_extent_show_fi_regular,
+
+ TP_PROTO(struct btrfs_inode *bi, struct extent_buffer *l,
+ struct btrfs_file_extent_item *fi, u64 start),
+
+ TP_ARGS(bi, l, fi, start)
+)
+
+LTTNG_TRACEPOINT_EVENT_INSTANCE(
+ btrfs__file_extent_item_regular, btrfs_truncate_show_fi_regular,
+
+ TP_PROTO(struct btrfs_inode *bi, struct extent_buffer *l,
+ struct btrfs_file_extent_item *fi, u64 start),
+
+ TP_ARGS(bi, l, fi, start)
+)
+
+LTTNG_TRACEPOINT_EVENT_INSTANCE(
+ btrfs__file_extent_item_inline, btrfs_get_extent_show_fi_inline,
+
+ TP_PROTO(struct btrfs_inode *bi, struct extent_buffer *l,
+ struct btrfs_file_extent_item *fi, int slot, u64 start),
+
+ TP_ARGS(bi, l, fi, slot, start)
+)
+
+LTTNG_TRACEPOINT_EVENT_INSTANCE(
+ btrfs__file_extent_item_inline, btrfs_truncate_show_fi_inline,
+
+ TP_PROTO(struct btrfs_inode *bi, struct extent_buffer *l,
+ struct btrfs_file_extent_item *fi, int slot, u64 start),
+
+ TP_ARGS(bi, l, fi, slot, start)
+)
+#endif
+
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0))
LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__ordered_extent,
--
2.17.1
More information about the lttng-dev
mailing list