xfs
[Top] [All Lists]

[PATCH v5 6/6] xfs: xfs_iomap_prealloc_size() tracepoint

To: xfs@xxxxxxxxxxx
Subject: [PATCH v5 6/6] xfs: xfs_iomap_prealloc_size() tracepoint
From: Brian Foster <bfoster@xxxxxxxxxx>
Date: Mon, 18 Mar 2013 10:51:48 -0400
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <1363618308-53594-1-git-send-email-bfoster@xxxxxxxxxx>
References: <1363618308-53594-1-git-send-email-bfoster@xxxxxxxxxx>
Add a tracepoint to provide some feedback on preallocation size
calculation.

Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx>
Reviewed-by: Mark Tinguely <tinguely@xxxxxxx>
---
 fs/xfs/xfs_iomap.c |    3 +++
 fs/xfs/xfs_trace.h |   24 ++++++++++++++++++++++++
 2 files changed, 27 insertions(+), 0 deletions(-)

diff --git a/fs/xfs/xfs_iomap.c b/fs/xfs/xfs_iomap.c
index 0a53085..8f8aaee 100644
--- a/fs/xfs/xfs_iomap.c
+++ b/fs/xfs/xfs_iomap.c
@@ -518,6 +518,9 @@ check_writeio:
        if (alloc_blocks < mp->m_writeio_blocks)
                alloc_blocks = mp->m_writeio_blocks;
 
+       trace_xfs_iomap_prealloc_size(ip, alloc_blocks, shift,
+                                     mp->m_writeio_blocks);
+
        return alloc_blocks;
 }
 
diff --git a/fs/xfs/xfs_trace.h b/fs/xfs/xfs_trace.h
index 16a8129..aa4db33 100644
--- a/fs/xfs/xfs_trace.h
+++ b/fs/xfs/xfs_trace.h
@@ -619,6 +619,30 @@ DECLARE_EVENT_CLASS(xfs_iref_class,
                  (char *)__entry->caller_ip)
 )
 
+TRACE_EVENT(xfs_iomap_prealloc_size,
+       TP_PROTO(struct xfs_inode *ip, xfs_fsblock_t blocks, int shift,
+                unsigned int writeio_blocks),
+       TP_ARGS(ip, blocks, shift, writeio_blocks),
+       TP_STRUCT__entry(
+               __field(dev_t, dev)
+               __field(xfs_ino_t, ino)
+               __field(xfs_fsblock_t, blocks)
+               __field(int, shift)
+               __field(unsigned int, writeio_blocks)
+       ),
+       TP_fast_assign(
+               __entry->dev = VFS_I(ip)->i_sb->s_dev;
+               __entry->ino = ip->i_ino;
+               __entry->blocks = blocks;
+               __entry->shift = shift;
+               __entry->writeio_blocks = writeio_blocks;
+       ),
+       TP_printk("dev %d:%d ino 0x%llx prealloc blocks %llu shift %d "
+                 "m_writeio_blocks %u",
+                 MAJOR(__entry->dev), MINOR(__entry->dev), __entry->ino,
+                 __entry->blocks, __entry->shift, __entry->writeio_blocks)
+)
+
 #define DEFINE_IREF_EVENT(name) \
 DEFINE_EVENT(xfs_iref_class, name, \
        TP_PROTO(struct xfs_inode *ip, unsigned long caller_ip), \
-- 
1.7.7.6

<Prev in Thread] Current Thread [Next in Thread>