From 500c99a45fc0da09d1dc7b9e62bf58d562856a9a Mon Sep 17 00:00:00 2001 From: Michael Jeanson Date: Mon, 21 Aug 2017 14:47:08 -0400 Subject: [PATCH 4/8] Fix: update ext4 instrumentation for kernel 4.13 Organization: O.S. Systems Software LTDA. See this upstream commit : commit a627b0a7c15ee4d2c87a86d5be5c8167382e8d0d Author: Eric Whitney Date: Sun Jul 30 22:30:11 2017 -0400 ext4: remove unused metadata accounting variables Two variables in ext4_inode_info, i_reserved_meta_blocks and i_allocated_meta_blocks, are unused. Removing them saves a little memory per in-memory inode and cleans up clutter in several tracepoints. Adjust tracepoint output from ext4_alloc_da_blocks() for consistency and fix a typo and whitespace near these changes. Upstream-Status: Backport [2.9.4] Signed-off-by: Eric Whitney Signed-off-by: Theodore Ts'o Reviewed-by: Jan Kara Signed-off-by: Michael Jeanson Signed-off-by: Mathieu Desnoyers --- instrumentation/events/lttng-module/ext4.h | 96 ++++++++++++++++++++++++++---- 1 file changed, 86 insertions(+), 10 deletions(-) diff --git a/instrumentation/events/lttng-module/ext4.h b/instrumentation/events/lttng-module/ext4.h index e87b534..fe6f802 100644 --- a/instrumentation/events/lttng-module/ext4.h +++ b/instrumentation/events/lttng-module/ext4.h @@ -689,6 +689,19 @@ LTTNG_TRACEPOINT_EVENT(ext4_sync_fs, ) ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,13,0)) +LTTNG_TRACEPOINT_EVENT(ext4_alloc_da_blocks, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_FIELDS( + ctf_integer(dev_t, dev, inode->i_sb->s_dev) + ctf_integer(ino_t, ino, inode->i_ino) + ctf_integer(unsigned int, data_blocks, EXT4_I(inode)->i_reserved_data_blocks) + ) +) +#else LTTNG_TRACEPOINT_EVENT(ext4_alloc_da_blocks, TP_PROTO(struct inode *inode), @@ -701,6 +714,7 @@ LTTNG_TRACEPOINT_EVENT(ext4_alloc_da_blocks, ctf_integer(unsigned int, meta_blocks, EXT4_I(inode)->i_reserved_meta_blocks) ) ) +#endif LTTNG_TRACEPOINT_EVENT(ext4_mballoc_alloc, TP_PROTO(struct ext4_allocation_context *ac), @@ -833,17 +847,49 @@ LTTNG_TRACEPOINT_EVENT(ext4_forget, ) #endif -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,13,0)) LTTNG_TRACEPOINT_EVENT(ext4_da_update_reserve_space, -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) TP_PROTO(struct inode *inode, int used_blocks, int quota_claim), TP_ARGS(inode, used_blocks, quota_claim), -#else + + TP_FIELDS( + ctf_integer(dev_t, dev, inode->i_sb->s_dev) + ctf_integer(ino_t, ino, inode->i_ino) + ctf_integer(__u64, i_blocks, inode->i_blocks) + ctf_integer(int, used_blocks, used_blocks) + ctf_integer(int, reserved_data_blocks, + EXT4_I(inode)->i_reserved_data_blocks) + ctf_integer(int, quota_claim, quota_claim) + ctf_integer(TP_MODE_T, mode, inode->i_mode) + ) +) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) +LTTNG_TRACEPOINT_EVENT(ext4_da_update_reserve_space, + TP_PROTO(struct inode *inode, int used_blocks, int quota_claim), + + TP_ARGS(inode, used_blocks, quota_claim), + + TP_FIELDS( + ctf_integer(dev_t, dev, inode->i_sb->s_dev) + ctf_integer(ino_t, ino, inode->i_ino) + ctf_integer(__u64, i_blocks, inode->i_blocks) + ctf_integer(int, used_blocks, used_blocks) + ctf_integer(int, reserved_data_blocks, + EXT4_I(inode)->i_reserved_data_blocks) + ctf_integer(int, reserved_meta_blocks, + EXT4_I(inode)->i_reserved_meta_blocks) + ctf_integer(int, allocated_meta_blocks, + EXT4_I(inode)->i_allocated_meta_blocks) + ctf_integer(int, quota_claim, quota_claim) + ctf_integer(TP_MODE_T, mode, inode->i_mode) + ) +) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) +LTTNG_TRACEPOINT_EVENT(ext4_da_update_reserve_space, TP_PROTO(struct inode *inode, int used_blocks), TP_ARGS(inode, used_blocks), -#endif TP_FIELDS( ctf_integer(dev_t, dev, inode->i_sb->s_dev) @@ -856,14 +902,27 @@ LTTNG_TRACEPOINT_EVENT(ext4_da_update_reserve_space, EXT4_I(inode)->i_reserved_meta_blocks) ctf_integer(int, allocated_meta_blocks, EXT4_I(inode)->i_allocated_meta_blocks) -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) - ctf_integer(int, quota_claim, quota_claim) -#endif ctf_integer(TP_MODE_T, mode, inode->i_mode) ) ) +#endif -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,13,0)) +LTTNG_TRACEPOINT_EVENT(ext4_da_reserve_space, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_FIELDS( + ctf_integer(dev_t, dev, inode->i_sb->s_dev) + ctf_integer(ino_t, ino, inode->i_ino) + ctf_integer(__u64, i_blocks, inode->i_blocks) + ctf_integer(int, reserved_data_blocks, + EXT4_I(inode)->i_reserved_data_blocks) + ctf_integer(TP_MODE_T, mode, inode->i_mode) + ) +) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)) LTTNG_TRACEPOINT_EVENT(ext4_da_reserve_space, TP_PROTO(struct inode *inode), @@ -880,7 +939,7 @@ LTTNG_TRACEPOINT_EVENT(ext4_da_reserve_space, ctf_integer(TP_MODE_T, mode, inode->i_mode) ) ) -#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)) */ +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) LTTNG_TRACEPOINT_EVENT(ext4_da_reserve_space, TP_PROTO(struct inode *inode, int md_needed), @@ -898,8 +957,25 @@ LTTNG_TRACEPOINT_EVENT(ext4_da_reserve_space, ctf_integer(TP_MODE_T, mode, inode->i_mode) ) ) -#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)) */ +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,13,0)) +LTTNG_TRACEPOINT_EVENT(ext4_da_release_space, + TP_PROTO(struct inode *inode, int freed_blocks), + + TP_ARGS(inode, freed_blocks), + TP_FIELDS( + ctf_integer(dev_t, dev, inode->i_sb->s_dev) + ctf_integer(ino_t, ino, inode->i_ino) + ctf_integer(__u64, i_blocks, inode->i_blocks) + ctf_integer(int, freed_blocks, freed_blocks) + ctf_integer(int, reserved_data_blocks, + EXT4_I(inode)->i_reserved_data_blocks) + ctf_integer(TP_MODE_T, mode, inode->i_mode) + ) +) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) LTTNG_TRACEPOINT_EVENT(ext4_da_release_space, TP_PROTO(struct inode *inode, int freed_blocks), -- 2.14.1