f2fs: show more DIO information in tracepoint
authorJaegeuk Kim <jaegeuk@kernel.org>
Fri, 19 Nov 2021 19:20:33 +0000 (11:20 -0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Fri, 10 Dec 2021 23:48:31 +0000 (15:48 -0800)
This prints more information of DIO in tracepoint.

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 7516d97..0802a10 100644 (file)
@@ -4284,7 +4284,7 @@ static ssize_t f2fs_dio_read_iter(struct kiocb *iocb, struct iov_iter *to)
        if (count == 0)
                return 0; /* skip atime update */
 
-       trace_f2fs_direct_IO_enter(inode, pos, count, READ);
+       trace_f2fs_direct_IO_enter(inode, iocb, count, READ);
 
        if (iocb->ki_flags & IOCB_NOWAIT) {
                if (!down_read_trylock(&fi->i_gc_rwsem[READ])) {
@@ -4483,7 +4483,7 @@ static ssize_t f2fs_dio_write_iter(struct kiocb *iocb, struct iov_iter *from,
        struct iomap_dio *dio;
        ssize_t ret;
 
-       trace_f2fs_direct_IO_enter(inode, pos, count, WRITE);
+       trace_f2fs_direct_IO_enter(inode, iocb, count, WRITE);
 
        if (iocb->ki_flags & IOCB_NOWAIT) {
                /* f2fs_convert_inline_inode() and block allocation can block */
index dcb94d7..f701bb2 100644 (file)
@@ -936,14 +936,14 @@ TRACE_EVENT(f2fs_fallocate,
 
 TRACE_EVENT(f2fs_direct_IO_enter,
 
-       TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw),
+       TP_PROTO(struct inode *inode, struct kiocb *iocb, long len, int rw),
 
-       TP_ARGS(inode, offset, len, rw),
+       TP_ARGS(inode, iocb, len, rw),
 
        TP_STRUCT__entry(
                __field(dev_t,  dev)
                __field(ino_t,  ino)
-               __field(loff_t, pos)
+               __field(struct kiocb *, iocb)
                __field(unsigned long,  len)
                __field(int,    rw)
        ),
@@ -951,15 +951,18 @@ TRACE_EVENT(f2fs_direct_IO_enter,
        TP_fast_assign(
                __entry->dev    = inode->i_sb->s_dev;
                __entry->ino    = inode->i_ino;
-               __entry->pos    = offset;
+               __entry->iocb   = iocb;
                __entry->len    = len;
                __entry->rw     = rw;
        ),
 
-       TP_printk("dev = (%d,%d), ino = %lu pos = %lld len = %lu rw = %d",
+       TP_printk("dev = (%d,%d), ino = %lu pos = %lld len = %lu ki_flags = %x ki_hint = %x ki_ioprio = %x rw = %d",
                show_dev_ino(__entry),
-               __entry->pos,
+               __entry->iocb->ki_pos,
                __entry->len,
+               __entry->iocb->ki_flags,
+               __entry->iocb->ki_hint,
+               __entry->iocb->ki_ioprio,
                __entry->rw)
 );