mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-09-02 08:32:55 +00:00
f2fs: show more DIO information in tracepoint
This prints more information of DIO in tracepoint. Reviewed-by: Chao Yu <chao@kernel.org> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
a1e09b03e6
commit
bd984c0309
@ -4284,7 +4284,7 @@ static ssize_t f2fs_dio_read_iter(struct kiocb *iocb, struct iov_iter *to)
|
|||||||
if (count == 0)
|
if (count == 0)
|
||||||
return 0; /* skip atime update */
|
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 (iocb->ki_flags & IOCB_NOWAIT) {
|
||||||
if (!down_read_trylock(&fi->i_gc_rwsem[READ])) {
|
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;
|
struct iomap_dio *dio;
|
||||||
ssize_t ret;
|
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) {
|
if (iocb->ki_flags & IOCB_NOWAIT) {
|
||||||
/* f2fs_convert_inline_inode() and block allocation can block */
|
/* f2fs_convert_inline_inode() and block allocation can block */
|
||||||
|
@ -936,14 +936,14 @@ TRACE_EVENT(f2fs_fallocate,
|
|||||||
|
|
||||||
TRACE_EVENT(f2fs_direct_IO_enter,
|
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(
|
TP_STRUCT__entry(
|
||||||
__field(dev_t, dev)
|
__field(dev_t, dev)
|
||||||
__field(ino_t, ino)
|
__field(ino_t, ino)
|
||||||
__field(loff_t, pos)
|
__field(struct kiocb *, iocb)
|
||||||
__field(unsigned long, len)
|
__field(unsigned long, len)
|
||||||
__field(int, rw)
|
__field(int, rw)
|
||||||
),
|
),
|
||||||
@ -951,15 +951,18 @@ TRACE_EVENT(f2fs_direct_IO_enter,
|
|||||||
TP_fast_assign(
|
TP_fast_assign(
|
||||||
__entry->dev = inode->i_sb->s_dev;
|
__entry->dev = inode->i_sb->s_dev;
|
||||||
__entry->ino = inode->i_ino;
|
__entry->ino = inode->i_ino;
|
||||||
__entry->pos = offset;
|
__entry->iocb = iocb;
|
||||||
__entry->len = len;
|
__entry->len = len;
|
||||||
__entry->rw = rw;
|
__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),
|
show_dev_ino(__entry),
|
||||||
__entry->pos,
|
__entry->iocb->ki_pos,
|
||||||
__entry->len,
|
__entry->len,
|
||||||
|
__entry->iocb->ki_flags,
|
||||||
|
__entry->iocb->ki_hint,
|
||||||
|
__entry->iocb->ki_ioprio,
|
||||||
__entry->rw)
|
__entry->rw)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user