All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] iomap: Remove pgoff from tracepoints
@ 2020-03-04 15:47 Matthew Wilcox
  2020-03-04 15:48 ` Darrick J. Wong
  2020-03-04 15:55 ` Christoph Hellwig
  0 siblings, 2 replies; 3+ messages in thread
From: Matthew Wilcox @ 2020-03-04 15:47 UTC (permalink / raw)
  To: linux-xfs; +Cc: linux-fsdevel, Christoph Hellwig, Darrick J. Wong

From: Matthew Wilcox (Oracle) <willy@infradead.org>

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.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>

diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c
index 7057ef155a29..cab29ffb2b40 100644
--- a/fs/iomap/buffered-io.c
+++ b/fs/iomap/buffered-io.c
@@ -487,7 +487,7 @@ EXPORT_SYMBOL_GPL(iomap_is_partially_uptodate);
 int
 iomap_releasepage(struct page *page, gfp_t gfp_mask)
 {
-	trace_iomap_releasepage(page->mapping->host, page, 0, 0);
+	trace_iomap_releasepage(page->mapping->host, 0, 0);
 
 	/*
 	 * mm accommodates an old ext3 case where clean pages might not have had
@@ -504,7 +504,7 @@ EXPORT_SYMBOL_GPL(iomap_releasepage);
 void
 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
@@ -1503,7 +1503,7 @@ iomap_do_writepage(struct page *page, struct writeback_control *wbc, void *data)
 	u64 end_offset;
 	loff_t offset;
 
-	trace_iomap_writepage(inode, page, 0, 0);
+	trace_iomap_writepage(inode, 0, 0);
 
 	/*
 	 * Refuse to write the page out if we are called from reclaim context.
diff --git a/fs/iomap/trace.h b/fs/iomap/trace.h
index d6ba705f938a..5693a39d52fb 100644
--- a/fs/iomap/trace.h
+++ b/fs/iomap/trace.h
@@ -41,14 +41,12 @@ DEFINE_EVENT(iomap_readpage_class, name,	\
 DEFINE_READPAGE_EVENT(iomap_readpage);
 DEFINE_READPAGE_EVENT(iomap_readahead);
 
-DECLARE_EVENT_CLASS(iomap_page_class,
-	TP_PROTO(struct inode *inode, struct page *page, unsigned long off,
-		 unsigned int len),
-	TP_ARGS(inode, page, off, len),
+DECLARE_EVENT_CLASS(iomap_range_class,
+	TP_PROTO(struct inode *inode, unsigned long off, unsigned int len),
+	TP_ARGS(inode, off, len),
 	TP_STRUCT__entry(
 		__field(dev_t, dev)
 		__field(u64, ino)
-		__field(pgoff_t, pgoff)
 		__field(loff_t, size)
 		__field(unsigned long, offset)
 		__field(unsigned int, length)
@@ -56,29 +54,26 @@ DECLARE_EVENT_CLASS(iomap_page_class,
 	TP_fast_assign(
 		__entry->dev = inode->i_sb->s_dev;
 		__entry->ino = inode->i_ino;
-		__entry->pgoff = page_offset(page);
 		__entry->size = i_size_read(inode);
 		__entry->offset = off;
 		__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",
 		  MAJOR(__entry->dev), MINOR(__entry->dev),
 		  __entry->ino,
-		  __entry->pgoff,
 		  __entry->size,
 		  __entry->offset,
 		  __entry->length)
 )
 
-#define DEFINE_PAGE_EVENT(name)		\
-DEFINE_EVENT(iomap_page_class, name,	\
-	TP_PROTO(struct inode *inode, struct page *page, unsigned long off, \
-		 unsigned int len),	\
-	TP_ARGS(inode, page, off, len))
-DEFINE_PAGE_EVENT(iomap_writepage);
-DEFINE_PAGE_EVENT(iomap_releasepage);
-DEFINE_PAGE_EVENT(iomap_invalidatepage);
+#define DEFINE_RANGE_EVENT(name)		\
+DEFINE_EVENT(iomap_range_class, name,	\
+	TP_PROTO(struct inode *inode, unsigned long off, unsigned int len),\
+	TP_ARGS(inode, off, len))
+DEFINE_RANGE_EVENT(iomap_writepage);
+DEFINE_RANGE_EVENT(iomap_releasepage);
+DEFINE_RANGE_EVENT(iomap_invalidatepage);
 
 #define IOMAP_TYPE_STRINGS \
 	{ IOMAP_HOLE,		"HOLE" }, \

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] iomap: Remove pgoff from tracepoints
  2020-03-04 15:47 [PATCH v2] iomap: Remove pgoff from tracepoints Matthew Wilcox
@ 2020-03-04 15:48 ` Darrick J. Wong
  2020-03-04 15:55 ` Christoph Hellwig
  1 sibling, 0 replies; 3+ messages in thread
From: Darrick J. Wong @ 2020-03-04 15:48 UTC (permalink / raw)
  To: Matthew Wilcox; +Cc: linux-xfs, linux-fsdevel, Christoph Hellwig

On Wed, Mar 04, 2020 at 07:47:06AM -0800, Matthew Wilcox wrote:
> From: Matthew Wilcox (Oracle) <willy@infradead.org>
> 
> 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.
> 
> Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>

Looks fine to me,
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>

--D

> 
> diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c
> index 7057ef155a29..cab29ffb2b40 100644
> --- a/fs/iomap/buffered-io.c
> +++ b/fs/iomap/buffered-io.c
> @@ -487,7 +487,7 @@ EXPORT_SYMBOL_GPL(iomap_is_partially_uptodate);
>  int
>  iomap_releasepage(struct page *page, gfp_t gfp_mask)
>  {
> -	trace_iomap_releasepage(page->mapping->host, page, 0, 0);
> +	trace_iomap_releasepage(page->mapping->host, 0, 0);
>  
>  	/*
>  	 * mm accommodates an old ext3 case where clean pages might not have had
> @@ -504,7 +504,7 @@ EXPORT_SYMBOL_GPL(iomap_releasepage);
>  void
>  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
> @@ -1503,7 +1503,7 @@ iomap_do_writepage(struct page *page, struct writeback_control *wbc, void *data)
>  	u64 end_offset;
>  	loff_t offset;
>  
> -	trace_iomap_writepage(inode, page, 0, 0);
> +	trace_iomap_writepage(inode, 0, 0);
>  
>  	/*
>  	 * Refuse to write the page out if we are called from reclaim context.
> diff --git a/fs/iomap/trace.h b/fs/iomap/trace.h
> index d6ba705f938a..5693a39d52fb 100644
> --- a/fs/iomap/trace.h
> +++ b/fs/iomap/trace.h
> @@ -41,14 +41,12 @@ DEFINE_EVENT(iomap_readpage_class, name,	\
>  DEFINE_READPAGE_EVENT(iomap_readpage);
>  DEFINE_READPAGE_EVENT(iomap_readahead);
>  
> -DECLARE_EVENT_CLASS(iomap_page_class,
> -	TP_PROTO(struct inode *inode, struct page *page, unsigned long off,
> -		 unsigned int len),
> -	TP_ARGS(inode, page, off, len),
> +DECLARE_EVENT_CLASS(iomap_range_class,
> +	TP_PROTO(struct inode *inode, unsigned long off, unsigned int len),
> +	TP_ARGS(inode, off, len),
>  	TP_STRUCT__entry(
>  		__field(dev_t, dev)
>  		__field(u64, ino)
> -		__field(pgoff_t, pgoff)
>  		__field(loff_t, size)
>  		__field(unsigned long, offset)
>  		__field(unsigned int, length)
> @@ -56,29 +54,26 @@ DECLARE_EVENT_CLASS(iomap_page_class,
>  	TP_fast_assign(
>  		__entry->dev = inode->i_sb->s_dev;
>  		__entry->ino = inode->i_ino;
> -		__entry->pgoff = page_offset(page);
>  		__entry->size = i_size_read(inode);
>  		__entry->offset = off;
>  		__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",
>  		  MAJOR(__entry->dev), MINOR(__entry->dev),
>  		  __entry->ino,
> -		  __entry->pgoff,
>  		  __entry->size,
>  		  __entry->offset,
>  		  __entry->length)
>  )
>  
> -#define DEFINE_PAGE_EVENT(name)		\
> -DEFINE_EVENT(iomap_page_class, name,	\
> -	TP_PROTO(struct inode *inode, struct page *page, unsigned long off, \
> -		 unsigned int len),	\
> -	TP_ARGS(inode, page, off, len))
> -DEFINE_PAGE_EVENT(iomap_writepage);
> -DEFINE_PAGE_EVENT(iomap_releasepage);
> -DEFINE_PAGE_EVENT(iomap_invalidatepage);
> +#define DEFINE_RANGE_EVENT(name)		\
> +DEFINE_EVENT(iomap_range_class, name,	\
> +	TP_PROTO(struct inode *inode, unsigned long off, unsigned int len),\
> +	TP_ARGS(inode, off, len))
> +DEFINE_RANGE_EVENT(iomap_writepage);
> +DEFINE_RANGE_EVENT(iomap_releasepage);
> +DEFINE_RANGE_EVENT(iomap_invalidatepage);
>  
>  #define IOMAP_TYPE_STRINGS \
>  	{ IOMAP_HOLE,		"HOLE" }, \

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] iomap: Remove pgoff from tracepoints
  2020-03-04 15:47 [PATCH v2] iomap: Remove pgoff from tracepoints Matthew Wilcox
  2020-03-04 15:48 ` Darrick J. Wong
@ 2020-03-04 15:55 ` Christoph Hellwig
  1 sibling, 0 replies; 3+ messages in thread
From: Christoph Hellwig @ 2020-03-04 15:55 UTC (permalink / raw)
  To: Matthew Wilcox
  Cc: linux-xfs, linux-fsdevel, Christoph Hellwig, Darrick J. Wong

On Wed, Mar 04, 2020 at 07:47:06AM -0800, Matthew Wilcox wrote:
> From: Matthew Wilcox (Oracle) <willy@infradead.org>
> 
> 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.
> 
> Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
> 
> diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c
> index 7057ef155a29..cab29ffb2b40 100644
> --- a/fs/iomap/buffered-io.c
> +++ b/fs/iomap/buffered-io.c
> @@ -487,7 +487,7 @@ EXPORT_SYMBOL_GPL(iomap_is_partially_uptodate);
>  int
>  iomap_releasepage(struct page *page, gfp_t gfp_mask)
>  {
> -	trace_iomap_releasepage(page->mapping->host, page, 0, 0);
> +	trace_iomap_releasepage(page->mapping->host, 0, 0);

I think we should pass page_offset() for the offset here now.  Maybe
also PAGE_SIZE len for completeness while we're at it.

> @@ -1503,7 +1503,7 @@ iomap_do_writepage(struct page *page, struct writeback_control *wbc, void *data)
>  	u64 end_offset;
>  	loff_t offset;
>  
> -	trace_iomap_writepage(inode, page, 0, 0);
> +	trace_iomap_writepage(inode, 0, 0);

Same here.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-03-04 15:55 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-04 15:47 [PATCH v2] iomap: Remove pgoff from tracepoints Matthew Wilcox
2020-03-04 15:48 ` Darrick J. Wong
2020-03-04 15:55 ` Christoph Hellwig

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.