fix: ext4: limit the length of per-inode prealloc list (v5.9)
[lttng-modules.git] / instrumentation / events / lttng-module / ext4.h
index fe6f802be9ee47f83d530d6fb68229f0dd84669d..13a32865e26ad260c302c93934633a9f9317d43c 100644 (file)
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 #undef TRACE_SYSTEM
 #define TRACE_SYSTEM ext4
 
@@ -546,6 +547,20 @@ LTTNG_TRACEPOINT_EVENT(ext4_mb_release_group_pa,
        )
 )
 
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0))
+LTTNG_TRACEPOINT_EVENT(ext4_discard_preallocations,
+       TP_PROTO(struct inode *inode, unsigned int len, unsigned int needed),
+
+       TP_ARGS(inode, len, needed),
+
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(unsigned int, len, len)
+               ctf_integer(unsigned int, needed, needed)
+       )
+)
+#else
 LTTNG_TRACEPOINT_EVENT(ext4_discard_preallocations,
        TP_PROTO(struct inode *inode),
 
@@ -556,6 +571,7 @@ LTTNG_TRACEPOINT_EVENT(ext4_discard_preallocations,
                ctf_integer(ino_t, ino, inode->i_ino)
        )
 )
+#endif
 
 LTTNG_TRACEPOINT_EVENT(ext4_mb_discard_preallocations,
        TP_PROTO(struct super_block *sb, int needed),
@@ -1403,7 +1419,36 @@ LTTNG_TRACEPOINT_EVENT(ext4_load_inode,
 )
 #endif
 
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0))
+
+LTTNG_TRACEPOINT_EVENT(ext4_journal_start,
+       TP_PROTO(struct super_block *sb, int blocks, int rsv_blocks,
+                int revoke_creds, unsigned long IP),
+
+       TP_ARGS(sb, blocks, rsv_blocks, revoke_creds, IP),
+
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, sb->s_dev)
+               ctf_integer(unsigned long, ip, IP)
+               ctf_integer(int, blocks, blocks)
+               ctf_integer(int, rsv_blocks, rsv_blocks)
+               ctf_integer(int, revoke_creds, revoke_creds)
+       )
+)
+
+LTTNG_TRACEPOINT_EVENT(ext4_journal_start_reserved,
+       TP_PROTO(struct super_block *sb, int blocks, unsigned long IP),
+
+       TP_ARGS(sb, blocks, IP),
+
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, sb->s_dev)
+               ctf_integer(unsigned long, ip, IP)
+               ctf_integer(int, blocks, blocks)
+       )
+)
+
+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
 
 LTTNG_TRACEPOINT_EVENT(ext4_journal_start,
        TP_PROTO(struct super_block *sb, int blocks, int rsv_blocks,
@@ -1602,7 +1647,31 @@ LTTNG_TRACEPOINT_EVENT(ext4_ext_show_extent,
        )
 )
 
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0) || \
+       LTTNG_RHEL_KERNEL_RANGE(4,18,0,147,0,0, 4,19,0,0,0,0))
+
+LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks,
+       TP_PROTO(struct inode *inode, struct ext4_extent *ex,
+                ext4_lblk_t from, ext4_fsblk_t to,
+                struct partial_cluster *pc),
+
+       TP_ARGS(inode, ex, from, to, pc),
+
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(ext4_lblk_t, from, from)
+               ctf_integer(ext4_lblk_t, to, to)
+               ctf_integer(ext4_fsblk_t, ee_pblk, ext4_ext_pblock(ex))
+               ctf_integer(ext4_lblk_t, ee_lblk, le32_to_cpu(ex->ee_block))
+               ctf_integer(unsigned short, ee_len, ext4_ext_get_actual_len(ex))
+               ctf_integer(ext4_fsblk_t, pc_pclu, pc->pclu)
+               ctf_integer(ext4_lblk_t, pc_lblk, pc->lblk)
+               ctf_integer(int, pc_state, pc->state)
+       )
+)
+
+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
 
 LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks,
            TP_PROTO(struct inode *inode, struct ext4_extent *ex,
@@ -1646,7 +1715,30 @@ LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks,
 
 #endif
 
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0) || \
+       LTTNG_RHEL_KERNEL_RANGE(4,18,0,147,0,0, 4,19,0,0,0,0))
+
+LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_leaf,
+       TP_PROTO(struct inode *inode, ext4_lblk_t start,
+                struct ext4_extent *ex,
+                struct partial_cluster *pc),
+
+       TP_ARGS(inode, start, ex, pc),
+
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(ext4_lblk_t, start, start)
+               ctf_integer(ext4_lblk_t, ee_lblk, le32_to_cpu(ex->ee_block))
+               ctf_integer(ext4_fsblk_t, ee_pblk, ext4_ext_pblock(ex))
+               ctf_integer(short, ee_len, ext4_ext_get_actual_len(ex))
+               ctf_integer(ext4_fsblk_t, pc_pclu, pc->pclu)
+               ctf_integer(ext4_lblk_t, pc_lblk, pc->lblk)
+               ctf_integer(int, pc_state, pc->state)
+       )
+)
+
+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
 
 LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_leaf,
        TP_PROTO(struct inode *inode, ext4_lblk_t start,
@@ -1733,7 +1825,29 @@ LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space,
 
 #endif
 
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0) || \
+       LTTNG_RHEL_KERNEL_RANGE(4,18,0,147,0,0, 4,19,0,0,0,0))
+
+LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space_done,
+       TP_PROTO(struct inode *inode, ext4_lblk_t start, ext4_lblk_t end,
+                int depth, struct partial_cluster *pc, __le16 eh_entries),
+
+       TP_ARGS(inode, start, end, depth, pc, eh_entries),
+
+       TP_FIELDS(
+               ctf_integer(dev_t, dev, inode->i_sb->s_dev)
+               ctf_integer(ino_t, ino, inode->i_ino)
+               ctf_integer(ext4_lblk_t, start, start)
+               ctf_integer(ext4_lblk_t, end, end)
+               ctf_integer(int, depth, depth)
+               ctf_integer(unsigned short, eh_entries, le16_to_cpu(eh_entries))
+               ctf_integer(ext4_fsblk_t, pc_pclu, pc->pclu)
+               ctf_integer(ext4_lblk_t, pc_lblk, pc->lblk)
+               ctf_integer(int, pc_state, pc->state)
+       )
+)
+
+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
 
 LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space_done,
        TP_PROTO(struct inode *inode, ext4_lblk_t start, ext4_lblk_t end,
This page took 0.024677 seconds and 4 git commands to generate.