]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
f2fs: add fadvise tracepoint
authorJaegeuk Kim <jaegeuk@kernel.org>
Tue, 28 Oct 2025 19:50:11 +0000 (19:50 +0000)
committerJaegeuk Kim <jaegeuk@kernel.org>
Thu, 4 Dec 2025 02:00:03 +0000 (02:00 +0000)
This adds a tracepoint in the fadvise call path.

Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/file.c
include/trace/events/f2fs.h

index 7b966f6d40d23fce384c6a6edca72ed478dd2ae9..d7047ca6b98d8a41d69ea79bcbab3e4ae4cf30b6 100644 (file)
@@ -5288,6 +5288,8 @@ static int f2fs_file_fadvise(struct file *filp, loff_t offset, loff_t len,
        struct inode *inode = file_inode(filp);
        int err;
 
+       trace_f2fs_fadvise(inode, offset, len, advice);
+
        if (advice == POSIX_FADV_SEQUENTIAL) {
                if (S_ISFIFO(inode->i_mode))
                        return -ESPIPE;
index e1fae78d64a585c2e1f8594e45f06d9c60372d9a..e00611ead024ddbf1405e875bb48b3c9b7609740 100644 (file)
@@ -586,6 +586,38 @@ TRACE_EVENT(f2fs_file_write_iter,
                __entry->ret)
 );
 
+TRACE_EVENT(f2fs_fadvise,
+
+       TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int advice),
+
+       TP_ARGS(inode, offset, len, advice),
+
+       TP_STRUCT__entry(
+               __field(dev_t,  dev)
+               __field(ino_t,  ino)
+               __field(loff_t, size)
+               __field(loff_t, offset)
+               __field(loff_t, len)
+               __field(int,    advice)
+       ),
+
+       TP_fast_assign(
+               __entry->dev    = inode->i_sb->s_dev;
+               __entry->ino    = inode->i_ino;
+               __entry->size   = i_size_read(inode);
+               __entry->offset = offset;
+               __entry->len    = len;
+               __entry->advice = advice;
+       ),
+
+       TP_printk("dev = (%d,%d), ino = %lu, i_size = %lld offset:%llu, len:%llu, advise:%d",
+               show_dev_ino(__entry),
+               (unsigned long long)__entry->size,
+               __entry->offset,
+               __entry->len,
+               __entry->advice)
+);
+
 TRACE_EVENT(f2fs_map_blocks,
        TP_PROTO(struct inode *inode, struct f2fs_map_blocks *map, int flag,
                 int ret),