Commit 1ac99452 authored by Matthew Wilcox (Oracle)'s avatar Matthew Wilcox (Oracle) Committed by Darrick J. Wong

iomap: Remove pgoff from tracepoints

The 'pgoff' displayed by the tracepoints wasn't a pgoff at all; it
was a byte offset from the start of the file.  We already emit that in
the form of the 'offset', so we can just remove pgoff.  That means we
can remove 'page' as an argument to the tracepoint, and rename this
type of tracepoint from being a page class to being a range class.

Fixes: 0b1b213f ("xfs: event tracing support")
Signed-off-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
parent 98d54f81
...@@ -503,7 +503,8 @@ EXPORT_SYMBOL_GPL(iomap_is_partially_uptodate); ...@@ -503,7 +503,8 @@ EXPORT_SYMBOL_GPL(iomap_is_partially_uptodate);
int int
iomap_releasepage(struct page *page, gfp_t gfp_mask) iomap_releasepage(struct page *page, gfp_t gfp_mask)
{ {
trace_iomap_releasepage(page->mapping->host, page, 0, 0); trace_iomap_releasepage(page->mapping->host, page_offset(page),
PAGE_SIZE);
/* /*
* mm accommodates an old ext3 case where clean pages might not have had * mm accommodates an old ext3 case where clean pages might not have had
...@@ -520,7 +521,7 @@ EXPORT_SYMBOL_GPL(iomap_releasepage); ...@@ -520,7 +521,7 @@ EXPORT_SYMBOL_GPL(iomap_releasepage);
void void
iomap_invalidatepage(struct page *page, unsigned int offset, unsigned int len) iomap_invalidatepage(struct page *page, unsigned int offset, unsigned int len)
{ {
trace_iomap_invalidatepage(page->mapping->host, page, offset, len); trace_iomap_invalidatepage(page->mapping->host, offset, len);
/* /*
* If we are invalidating the entire page, clear the dirty state from it * If we are invalidating the entire page, clear the dirty state from it
...@@ -1519,7 +1520,7 @@ iomap_do_writepage(struct page *page, struct writeback_control *wbc, void *data) ...@@ -1519,7 +1520,7 @@ iomap_do_writepage(struct page *page, struct writeback_control *wbc, void *data)
u64 end_offset; u64 end_offset;
loff_t offset; loff_t offset;
trace_iomap_writepage(inode, page, 0, 0); trace_iomap_writepage(inode, page_offset(page), PAGE_SIZE);
/* /*
* Refuse to write the page out if we are called from reclaim context. * Refuse to write the page out if we are called from reclaim context.
......
...@@ -41,14 +41,12 @@ DEFINE_EVENT(iomap_readpage_class, name, \ ...@@ -41,14 +41,12 @@ DEFINE_EVENT(iomap_readpage_class, name, \
DEFINE_READPAGE_EVENT(iomap_readpage); DEFINE_READPAGE_EVENT(iomap_readpage);
DEFINE_READPAGE_EVENT(iomap_readpages); DEFINE_READPAGE_EVENT(iomap_readpages);
DECLARE_EVENT_CLASS(iomap_page_class, DECLARE_EVENT_CLASS(iomap_range_class,
TP_PROTO(struct inode *inode, struct page *page, unsigned long off, TP_PROTO(struct inode *inode, unsigned long off, unsigned int len),
unsigned int len), TP_ARGS(inode, off, len),
TP_ARGS(inode, page, off, len),
TP_STRUCT__entry( TP_STRUCT__entry(
__field(dev_t, dev) __field(dev_t, dev)
__field(u64, ino) __field(u64, ino)
__field(pgoff_t, pgoff)
__field(loff_t, size) __field(loff_t, size)
__field(unsigned long, offset) __field(unsigned long, offset)
__field(unsigned int, length) __field(unsigned int, length)
...@@ -56,29 +54,26 @@ DECLARE_EVENT_CLASS(iomap_page_class, ...@@ -56,29 +54,26 @@ DECLARE_EVENT_CLASS(iomap_page_class,
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->pgoff = page_offset(page);
__entry->size = i_size_read(inode); __entry->size = i_size_read(inode);
__entry->offset = off; __entry->offset = off;
__entry->length = len; __entry->length = len;
), ),
TP_printk("dev %d:%d ino 0x%llx pgoff 0x%lx size 0x%llx offset %lx " TP_printk("dev %d:%d ino 0x%llx size 0x%llx offset %lx "
"length %x", "length %x",
MAJOR(__entry->dev), MINOR(__entry->dev), MAJOR(__entry->dev), MINOR(__entry->dev),
__entry->ino, __entry->ino,
__entry->pgoff,
__entry->size, __entry->size,
__entry->offset, __entry->offset,
__entry->length) __entry->length)
) )
#define DEFINE_PAGE_EVENT(name) \ #define DEFINE_RANGE_EVENT(name) \
DEFINE_EVENT(iomap_page_class, name, \ DEFINE_EVENT(iomap_range_class, name, \
TP_PROTO(struct inode *inode, struct page *page, unsigned long off, \ TP_PROTO(struct inode *inode, unsigned long off, unsigned int len),\
unsigned int len), \ TP_ARGS(inode, off, len))
TP_ARGS(inode, page, off, len)) DEFINE_RANGE_EVENT(iomap_writepage);
DEFINE_PAGE_EVENT(iomap_writepage); DEFINE_RANGE_EVENT(iomap_releasepage);
DEFINE_PAGE_EVENT(iomap_releasepage); DEFINE_RANGE_EVENT(iomap_invalidatepage);
DEFINE_PAGE_EVENT(iomap_invalidatepage);
#define IOMAP_TYPE_STRINGS \ #define IOMAP_TYPE_STRINGS \
{ IOMAP_HOLE, "HOLE" }, \ { IOMAP_HOLE, "HOLE" }, \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment