On 10/29/25 03:54, Jaegeuk Kim via Linux-f2fs-devel wrote:
> This adds a tracepoint in the fadvise call path.
> 
> Signed-off-by: Jaegeuk Kim <[email protected]>
> ---
>  fs/f2fs/file.c              |  2 ++
>  include/trace/events/f2fs.h | 32 ++++++++++++++++++++++++++++++++
>  2 files changed, 34 insertions(+)
> 
> diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
> index 6d42e2d28861..4a81089c5df3 100644
> --- a/fs/f2fs/file.c
> +++ b/fs/f2fs/file.c
> @@ -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;
> diff --git a/include/trace/events/f2fs.h b/include/trace/events/f2fs.h
> index edbbd869078f..b7f5317b5980 100644
> --- a/include/trace/events/f2fs.h
> +++ b/include/trace/events/f2fs.h
> @@ -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   = inode->i_size;

__entry->size = i_size_read(inode)?

Thanks,

> +             __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),



_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to