xfs: convert more trace events to DEFINE_EVENT
Use DECLARE_EVENT_CLASS, and save ~15K: text data bss dec hex filename 171949 43028 48 215025 347f1 fs/xfs/linux-2.6/xfs_trace.o.orig 156521 43028 36 199585 30ba1 fs/xfs/linux-2.6/xfs_trace.o No change in functionality. Signed-off-by: Li Zefan <lizf@cn.fujitsu.com> Acked-by: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Alex Elder <aelder@sgi.com>
This commit is contained in:
parent
292ec4cf35
commit
f8adb4d574
|
@ -82,33 +82,6 @@ DECLARE_EVENT_CLASS(xfs_attr_list_class,
|
|||
)
|
||||
)
|
||||
|
||||
#define DEFINE_PERAG_REF_EVENT(name) \
|
||||
TRACE_EVENT(name, \
|
||||
TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, int refcount, \
|
||||
unsigned long caller_ip), \
|
||||
TP_ARGS(mp, agno, refcount, caller_ip), \
|
||||
TP_STRUCT__entry( \
|
||||
__field(dev_t, dev) \
|
||||
__field(xfs_agnumber_t, agno) \
|
||||
__field(int, refcount) \
|
||||
__field(unsigned long, caller_ip) \
|
||||
), \
|
||||
TP_fast_assign( \
|
||||
__entry->dev = mp->m_super->s_dev; \
|
||||
__entry->agno = agno; \
|
||||
__entry->refcount = refcount; \
|
||||
__entry->caller_ip = caller_ip; \
|
||||
), \
|
||||
TP_printk("dev %d:%d agno %u refcount %d caller %pf", \
|
||||
MAJOR(__entry->dev), MINOR(__entry->dev), \
|
||||
__entry->agno, \
|
||||
__entry->refcount, \
|
||||
(char *)__entry->caller_ip) \
|
||||
);
|
||||
|
||||
DEFINE_PERAG_REF_EVENT(xfs_perag_get)
|
||||
DEFINE_PERAG_REF_EVENT(xfs_perag_put)
|
||||
|
||||
#define DEFINE_ATTR_LIST_EVENT(name) \
|
||||
DEFINE_EVENT(xfs_attr_list_class, name, \
|
||||
TP_PROTO(struct xfs_attr_list_context *ctx), \
|
||||
|
@ -122,6 +95,37 @@ DEFINE_ATTR_LIST_EVENT(xfs_attr_list_add);
|
|||
DEFINE_ATTR_LIST_EVENT(xfs_attr_list_wrong_blk);
|
||||
DEFINE_ATTR_LIST_EVENT(xfs_attr_list_notfound);
|
||||
|
||||
DECLARE_EVENT_CLASS(xfs_perag_class,
|
||||
TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, int refcount,
|
||||
unsigned long caller_ip),
|
||||
TP_ARGS(mp, agno, refcount, caller_ip),
|
||||
TP_STRUCT__entry(
|
||||
__field(dev_t, dev)
|
||||
__field(xfs_agnumber_t, agno)
|
||||
__field(int, refcount)
|
||||
__field(unsigned long, caller_ip)
|
||||
),
|
||||
TP_fast_assign(
|
||||
__entry->dev = mp->m_super->s_dev;
|
||||
__entry->agno = agno;
|
||||
__entry->refcount = refcount;
|
||||
__entry->caller_ip = caller_ip;
|
||||
),
|
||||
TP_printk("dev %d:%d agno %u refcount %d caller %pf",
|
||||
MAJOR(__entry->dev), MINOR(__entry->dev),
|
||||
__entry->agno,
|
||||
__entry->refcount,
|
||||
(char *)__entry->caller_ip)
|
||||
);
|
||||
|
||||
#define DEFINE_PERAG_REF_EVENT(name) \
|
||||
DEFINE_EVENT(xfs_perag_class, name, \
|
||||
TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, int refcount, \
|
||||
unsigned long caller_ip), \
|
||||
TP_ARGS(mp, agno, refcount, caller_ip))
|
||||
DEFINE_PERAG_REF_EVENT(xfs_perag_get);
|
||||
DEFINE_PERAG_REF_EVENT(xfs_perag_put);
|
||||
|
||||
TRACE_EVENT(xfs_attr_list_node_descend,
|
||||
TP_PROTO(struct xfs_attr_list_context *ctx,
|
||||
struct xfs_da_node_entry *btree),
|
||||
|
@ -775,165 +779,181 @@ DEFINE_LOGGRANT_EVENT(xfs_log_ungrant_enter);
|
|||
DEFINE_LOGGRANT_EVENT(xfs_log_ungrant_exit);
|
||||
DEFINE_LOGGRANT_EVENT(xfs_log_ungrant_sub);
|
||||
|
||||
#define DEFINE_RW_EVENT(name) \
|
||||
TRACE_EVENT(name, \
|
||||
TP_PROTO(struct xfs_inode *ip, size_t count, loff_t offset, int flags), \
|
||||
TP_ARGS(ip, count, offset, flags), \
|
||||
TP_STRUCT__entry( \
|
||||
__field(dev_t, dev) \
|
||||
__field(xfs_ino_t, ino) \
|
||||
__field(xfs_fsize_t, size) \
|
||||
__field(xfs_fsize_t, new_size) \
|
||||
__field(loff_t, offset) \
|
||||
__field(size_t, count) \
|
||||
__field(int, flags) \
|
||||
), \
|
||||
TP_fast_assign( \
|
||||
__entry->dev = VFS_I(ip)->i_sb->s_dev; \
|
||||
__entry->ino = ip->i_ino; \
|
||||
__entry->size = ip->i_d.di_size; \
|
||||
__entry->new_size = ip->i_new_size; \
|
||||
__entry->offset = offset; \
|
||||
__entry->count = count; \
|
||||
__entry->flags = flags; \
|
||||
), \
|
||||
TP_printk("dev %d:%d ino 0x%llx size 0x%llx new_size 0x%llx " \
|
||||
"offset 0x%llx count 0x%zx ioflags %s", \
|
||||
MAJOR(__entry->dev), MINOR(__entry->dev), \
|
||||
__entry->ino, \
|
||||
__entry->size, \
|
||||
__entry->new_size, \
|
||||
__entry->offset, \
|
||||
__entry->count, \
|
||||
__print_flags(__entry->flags, "|", XFS_IO_FLAGS)) \
|
||||
DECLARE_EVENT_CLASS(xfs_file_class,
|
||||
TP_PROTO(struct xfs_inode *ip, size_t count, loff_t offset, int flags),
|
||||
TP_ARGS(ip, count, offset, flags),
|
||||
TP_STRUCT__entry(
|
||||
__field(dev_t, dev)
|
||||
__field(xfs_ino_t, ino)
|
||||
__field(xfs_fsize_t, size)
|
||||
__field(xfs_fsize_t, new_size)
|
||||
__field(loff_t, offset)
|
||||
__field(size_t, count)
|
||||
__field(int, flags)
|
||||
),
|
||||
TP_fast_assign(
|
||||
__entry->dev = VFS_I(ip)->i_sb->s_dev;
|
||||
__entry->ino = ip->i_ino;
|
||||
__entry->size = ip->i_d.di_size;
|
||||
__entry->new_size = ip->i_new_size;
|
||||
__entry->offset = offset;
|
||||
__entry->count = count;
|
||||
__entry->flags = flags;
|
||||
),
|
||||
TP_printk("dev %d:%d ino 0x%llx size 0x%llx new_size 0x%llx "
|
||||
"offset 0x%llx count 0x%zx ioflags %s",
|
||||
MAJOR(__entry->dev), MINOR(__entry->dev),
|
||||
__entry->ino,
|
||||
__entry->size,
|
||||
__entry->new_size,
|
||||
__entry->offset,
|
||||
__entry->count,
|
||||
__print_flags(__entry->flags, "|", XFS_IO_FLAGS))
|
||||
)
|
||||
|
||||
#define DEFINE_RW_EVENT(name) \
|
||||
DEFINE_EVENT(xfs_file_class, name, \
|
||||
TP_PROTO(struct xfs_inode *ip, size_t count, loff_t offset, int flags), \
|
||||
TP_ARGS(ip, count, offset, flags))
|
||||
DEFINE_RW_EVENT(xfs_file_read);
|
||||
DEFINE_RW_EVENT(xfs_file_buffered_write);
|
||||
DEFINE_RW_EVENT(xfs_file_direct_write);
|
||||
DEFINE_RW_EVENT(xfs_file_splice_read);
|
||||
DEFINE_RW_EVENT(xfs_file_splice_write);
|
||||
|
||||
DECLARE_EVENT_CLASS(xfs_page_class,
|
||||
TP_PROTO(struct inode *inode, struct page *page, unsigned long off),
|
||||
TP_ARGS(inode, page, off),
|
||||
TP_STRUCT__entry(
|
||||
__field(dev_t, dev)
|
||||
__field(xfs_ino_t, ino)
|
||||
__field(pgoff_t, pgoff)
|
||||
__field(loff_t, size)
|
||||
__field(unsigned long, offset)
|
||||
__field(int, delalloc)
|
||||
__field(int, unmapped)
|
||||
__field(int, unwritten)
|
||||
),
|
||||
TP_fast_assign(
|
||||
int delalloc = -1, unmapped = -1, unwritten = -1;
|
||||
|
||||
#define DEFINE_PAGE_EVENT(name) \
|
||||
TRACE_EVENT(name, \
|
||||
TP_PROTO(struct inode *inode, struct page *page, unsigned long off), \
|
||||
TP_ARGS(inode, page, off), \
|
||||
TP_STRUCT__entry( \
|
||||
__field(dev_t, dev) \
|
||||
__field(xfs_ino_t, ino) \
|
||||
__field(pgoff_t, pgoff) \
|
||||
__field(loff_t, size) \
|
||||
__field(unsigned long, offset) \
|
||||
__field(int, delalloc) \
|
||||
__field(int, unmapped) \
|
||||
__field(int, unwritten) \
|
||||
), \
|
||||
TP_fast_assign( \
|
||||
int delalloc = -1, unmapped = -1, unwritten = -1; \
|
||||
\
|
||||
if (page_has_buffers(page)) \
|
||||
xfs_count_page_state(page, &delalloc, \
|
||||
&unmapped, &unwritten); \
|
||||
__entry->dev = inode->i_sb->s_dev; \
|
||||
__entry->ino = XFS_I(inode)->i_ino; \
|
||||
__entry->pgoff = page_offset(page); \
|
||||
__entry->size = i_size_read(inode); \
|
||||
__entry->offset = off; \
|
||||
__entry->delalloc = delalloc; \
|
||||
__entry->unmapped = unmapped; \
|
||||
__entry->unwritten = unwritten; \
|
||||
), \
|
||||
TP_printk("dev %d:%d ino 0x%llx pgoff 0x%lx size 0x%llx offset %lx " \
|
||||
"delalloc %d unmapped %d unwritten %d", \
|
||||
MAJOR(__entry->dev), MINOR(__entry->dev), \
|
||||
__entry->ino, \
|
||||
__entry->pgoff, \
|
||||
__entry->size, \
|
||||
__entry->offset, \
|
||||
__entry->delalloc, \
|
||||
__entry->unmapped, \
|
||||
__entry->unwritten) \
|
||||
if (page_has_buffers(page))
|
||||
xfs_count_page_state(page, &delalloc,
|
||||
&unmapped, &unwritten);
|
||||
__entry->dev = inode->i_sb->s_dev;
|
||||
__entry->ino = XFS_I(inode)->i_ino;
|
||||
__entry->pgoff = page_offset(page);
|
||||
__entry->size = i_size_read(inode);
|
||||
__entry->offset = off;
|
||||
__entry->delalloc = delalloc;
|
||||
__entry->unmapped = unmapped;
|
||||
__entry->unwritten = unwritten;
|
||||
),
|
||||
TP_printk("dev %d:%d ino 0x%llx pgoff 0x%lx size 0x%llx offset %lx "
|
||||
"delalloc %d unmapped %d unwritten %d",
|
||||
MAJOR(__entry->dev), MINOR(__entry->dev),
|
||||
__entry->ino,
|
||||
__entry->pgoff,
|
||||
__entry->size,
|
||||
__entry->offset,
|
||||
__entry->delalloc,
|
||||
__entry->unmapped,
|
||||
__entry->unwritten)
|
||||
)
|
||||
|
||||
#define DEFINE_PAGE_EVENT(name) \
|
||||
DEFINE_EVENT(xfs_page_class, name, \
|
||||
TP_PROTO(struct inode *inode, struct page *page, unsigned long off), \
|
||||
TP_ARGS(inode, page, off))
|
||||
DEFINE_PAGE_EVENT(xfs_writepage);
|
||||
DEFINE_PAGE_EVENT(xfs_releasepage);
|
||||
DEFINE_PAGE_EVENT(xfs_invalidatepage);
|
||||
|
||||
#define DEFINE_IOMAP_EVENT(name) \
|
||||
TRACE_EVENT(name, \
|
||||
TP_PROTO(struct xfs_inode *ip, xfs_off_t offset, ssize_t count, \
|
||||
int flags, struct xfs_bmbt_irec *irec), \
|
||||
TP_ARGS(ip, offset, count, flags, irec), \
|
||||
TP_STRUCT__entry( \
|
||||
__field(dev_t, dev) \
|
||||
__field(xfs_ino_t, ino) \
|
||||
__field(loff_t, size) \
|
||||
__field(loff_t, new_size) \
|
||||
__field(loff_t, offset) \
|
||||
__field(size_t, count) \
|
||||
__field(int, flags) \
|
||||
__field(xfs_fileoff_t, startoff) \
|
||||
__field(xfs_fsblock_t, startblock) \
|
||||
__field(xfs_filblks_t, blockcount) \
|
||||
), \
|
||||
TP_fast_assign( \
|
||||
__entry->dev = VFS_I(ip)->i_sb->s_dev; \
|
||||
__entry->ino = ip->i_ino; \
|
||||
__entry->size = ip->i_d.di_size; \
|
||||
__entry->new_size = ip->i_new_size; \
|
||||
__entry->offset = offset; \
|
||||
__entry->count = count; \
|
||||
__entry->flags = flags; \
|
||||
__entry->startoff = irec ? irec->br_startoff : 0; \
|
||||
__entry->startblock = irec ? irec->br_startblock : 0; \
|
||||
__entry->blockcount = irec ? irec->br_blockcount : 0; \
|
||||
), \
|
||||
TP_printk("dev %d:%d ino 0x%llx size 0x%llx new_size 0x%llx " \
|
||||
"offset 0x%llx count %zd flags %s " \
|
||||
"startoff 0x%llx startblock %lld blockcount 0x%llx", \
|
||||
MAJOR(__entry->dev), MINOR(__entry->dev), \
|
||||
__entry->ino, \
|
||||
__entry->size, \
|
||||
__entry->new_size, \
|
||||
__entry->offset, \
|
||||
__entry->count, \
|
||||
__print_flags(__entry->flags, "|", BMAPI_FLAGS), \
|
||||
__entry->startoff, \
|
||||
(__int64_t)__entry->startblock, \
|
||||
__entry->blockcount) \
|
||||
DECLARE_EVENT_CLASS(xfs_iomap_class,
|
||||
TP_PROTO(struct xfs_inode *ip, xfs_off_t offset, ssize_t count,
|
||||
int flags, struct xfs_bmbt_irec *irec),
|
||||
TP_ARGS(ip, offset, count, flags, irec),
|
||||
TP_STRUCT__entry(
|
||||
__field(dev_t, dev)
|
||||
__field(xfs_ino_t, ino)
|
||||
__field(loff_t, size)
|
||||
__field(loff_t, new_size)
|
||||
__field(loff_t, offset)
|
||||
__field(size_t, count)
|
||||
__field(int, flags)
|
||||
__field(xfs_fileoff_t, startoff)
|
||||
__field(xfs_fsblock_t, startblock)
|
||||
__field(xfs_filblks_t, blockcount)
|
||||
),
|
||||
TP_fast_assign(
|
||||
__entry->dev = VFS_I(ip)->i_sb->s_dev;
|
||||
__entry->ino = ip->i_ino;
|
||||
__entry->size = ip->i_d.di_size;
|
||||
__entry->new_size = ip->i_new_size;
|
||||
__entry->offset = offset;
|
||||
__entry->count = count;
|
||||
__entry->flags = flags;
|
||||
__entry->startoff = irec ? irec->br_startoff : 0;
|
||||
__entry->startblock = irec ? irec->br_startblock : 0;
|
||||
__entry->blockcount = irec ? irec->br_blockcount : 0;
|
||||
),
|
||||
TP_printk("dev %d:%d ino 0x%llx size 0x%llx new_size 0x%llx "
|
||||
"offset 0x%llx count %zd flags %s "
|
||||
"startoff 0x%llx startblock %lld blockcount 0x%llx",
|
||||
MAJOR(__entry->dev), MINOR(__entry->dev),
|
||||
__entry->ino,
|
||||
__entry->size,
|
||||
__entry->new_size,
|
||||
__entry->offset,
|
||||
__entry->count,
|
||||
__print_flags(__entry->flags, "|", BMAPI_FLAGS),
|
||||
__entry->startoff,
|
||||
(__int64_t)__entry->startblock,
|
||||
__entry->blockcount)
|
||||
)
|
||||
|
||||
#define DEFINE_IOMAP_EVENT(name) \
|
||||
DEFINE_EVENT(xfs_iomap_class, name, \
|
||||
TP_PROTO(struct xfs_inode *ip, xfs_off_t offset, ssize_t count, \
|
||||
int flags, struct xfs_bmbt_irec *irec), \
|
||||
TP_ARGS(ip, offset, count, flags, irec))
|
||||
DEFINE_IOMAP_EVENT(xfs_iomap_enter);
|
||||
DEFINE_IOMAP_EVENT(xfs_iomap_found);
|
||||
DEFINE_IOMAP_EVENT(xfs_iomap_alloc);
|
||||
|
||||
#define DEFINE_SIMPLE_IO_EVENT(name) \
|
||||
TRACE_EVENT(name, \
|
||||
TP_PROTO(struct xfs_inode *ip, xfs_off_t offset, ssize_t count), \
|
||||
TP_ARGS(ip, offset, count), \
|
||||
TP_STRUCT__entry( \
|
||||
__field(dev_t, dev) \
|
||||
__field(xfs_ino_t, ino) \
|
||||
__field(loff_t, size) \
|
||||
__field(loff_t, new_size) \
|
||||
__field(loff_t, offset) \
|
||||
__field(size_t, count) \
|
||||
), \
|
||||
TP_fast_assign( \
|
||||
__entry->dev = VFS_I(ip)->i_sb->s_dev; \
|
||||
__entry->ino = ip->i_ino; \
|
||||
__entry->size = ip->i_d.di_size; \
|
||||
__entry->new_size = ip->i_new_size; \
|
||||
__entry->offset = offset; \
|
||||
__entry->count = count; \
|
||||
), \
|
||||
TP_printk("dev %d:%d ino 0x%llx size 0x%llx new_size 0x%llx " \
|
||||
"offset 0x%llx count %zd", \
|
||||
MAJOR(__entry->dev), MINOR(__entry->dev), \
|
||||
__entry->ino, \
|
||||
__entry->size, \
|
||||
__entry->new_size, \
|
||||
__entry->offset, \
|
||||
__entry->count) \
|
||||
DECLARE_EVENT_CLASS(xfs_simple_io_class,
|
||||
TP_PROTO(struct xfs_inode *ip, xfs_off_t offset, ssize_t count),
|
||||
TP_ARGS(ip, offset, count),
|
||||
TP_STRUCT__entry(
|
||||
__field(dev_t, dev)
|
||||
__field(xfs_ino_t, ino)
|
||||
__field(loff_t, size)
|
||||
__field(loff_t, new_size)
|
||||
__field(loff_t, offset)
|
||||
__field(size_t, count)
|
||||
),
|
||||
TP_fast_assign(
|
||||
__entry->dev = VFS_I(ip)->i_sb->s_dev;
|
||||
__entry->ino = ip->i_ino;
|
||||
__entry->size = ip->i_d.di_size;
|
||||
__entry->new_size = ip->i_new_size;
|
||||
__entry->offset = offset;
|
||||
__entry->count = count;
|
||||
),
|
||||
TP_printk("dev %d:%d ino 0x%llx size 0x%llx new_size 0x%llx "
|
||||
"offset 0x%llx count %zd",
|
||||
MAJOR(__entry->dev), MINOR(__entry->dev),
|
||||
__entry->ino,
|
||||
__entry->size,
|
||||
__entry->new_size,
|
||||
__entry->offset,
|
||||
__entry->count)
|
||||
);
|
||||
|
||||
#define DEFINE_SIMPLE_IO_EVENT(name) \
|
||||
DEFINE_EVENT(xfs_simple_io_class, name, \
|
||||
TP_PROTO(struct xfs_inode *ip, xfs_off_t offset, ssize_t count), \
|
||||
TP_ARGS(ip, offset, count))
|
||||
DEFINE_SIMPLE_IO_EVENT(xfs_delalloc_enospc);
|
||||
DEFINE_SIMPLE_IO_EVENT(xfs_unwritten_convert);
|
||||
|
||||
|
|
Loading…
Reference in a new issue