linux-f2fs-devel.lists.sourceforge.net archive mirror
 help / color / mirror / Atom feed
* [f2fs-dev][PATCH 6/6] f2fs: add a tracepoint for f2fs_read_data_pages
@ 2014-05-06  8:54 Chao Yu
  2014-05-07  0:29 ` [PATCH " Jaegeuk Kim
  0 siblings, 1 reply; 3+ messages in thread
From: Chao Yu @ 2014-05-06  8:54 UTC (permalink / raw)
  To: Jaegeuk Kim; +Cc: linux-f2fs-devel, linux-fsdevel, linux-kernel

This patch adds a tracepoint for f2fs_read_data_pages to trace when pages are
readahead by VFS.

Signed-off-by: Chao Yu <chao2.yu@samsung.com>
---
 fs/f2fs/data.c              |    3 +++
 include/trace/events/f2fs.h |   26 ++++++++++++++++++++++++++
 2 files changed, 29 insertions(+)

diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index 8c250a5..f2d1e8a 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -729,6 +729,9 @@ static int f2fs_read_data_pages(struct file *file,
 			struct list_head *pages, unsigned nr_pages)
 {
 	struct inode *inode = file->f_mapping->host;
+	struct page *page = list_entry(pages->prev, struct page, lru);
+
+	trace_f2fs_readpages(inode, page, nr_pages);
 
 	/* If the file has inline data, skip readpages */
 	if (f2fs_has_inline_data(inode))
diff --git a/include/trace/events/f2fs.h b/include/trace/events/f2fs.h
index b983990..7fbaaaa 100644
--- a/include/trace/events/f2fs.h
+++ b/include/trace/events/f2fs.h
@@ -847,6 +847,32 @@ TRACE_EVENT(f2fs_writepages,
 		__entry->for_sync)
 );
 
+TRACE_EVENT(f2fs_readpages,
+
+	TP_PROTO(struct inode *inode, struct page *page, unsigned int nrpage),
+
+	TP_ARGS(inode, page, nrpage),
+
+	TP_STRUCT__entry(
+		__field(dev_t,	dev)
+		__field(ino_t,	ino)
+		__field(pgoff_t,	start)
+		__field(unsigned int,	nrpage)
+	),
+
+	TP_fast_assign(
+		__entry->dev	= inode->i_sb->s_dev;
+		__entry->ino	= inode->i_ino;
+		__entry->start	= page->index;
+		__entry->nrpage	= nrpage;
+	),
+
+	TP_printk("dev = (%d,%d), ino = %lu, start = %lu nrpage = %u",
+		show_dev_ino(__entry),
+		(unsigned long)__entry->start,
+		__entry->nrpage)
+);
+
 TRACE_EVENT(f2fs_submit_page_mbio,
 
 	TP_PROTO(struct page *page, int rw, int type, block_t blk_addr),
-- 
1.7.9.5



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

* Re: [PATCH 6/6] f2fs: add a tracepoint for f2fs_read_data_pages
  2014-05-06  8:54 [f2fs-dev][PATCH 6/6] f2fs: add a tracepoint for f2fs_read_data_pages Chao Yu
@ 2014-05-07  0:29 ` Jaegeuk Kim
  2014-05-08  8:58   ` [f2fs-dev][PATCH " Chao Yu
  0 siblings, 1 reply; 3+ messages in thread
From: Jaegeuk Kim @ 2014-05-07  0:29 UTC (permalink / raw)
  To: Chao Yu; +Cc: linux-fsdevel, linux-kernel, linux-f2fs-devel

Hi Chao,

2014-05-06 (화), 16:54 +0800, Chao Yu:
> This patch adds a tracepoint for f2fs_read_data_pages to trace when pages are
> readahead by VFS.
> 
> Signed-off-by: Chao Yu <chao2.yu@samsung.com>
> ---
>  fs/f2fs/data.c              |    3 +++
>  include/trace/events/f2fs.h |   26 ++++++++++++++++++++++++++
>  2 files changed, 29 insertions(+)
> 
> diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
> index 8c250a5..f2d1e8a 100644
> --- a/fs/f2fs/data.c
> +++ b/fs/f2fs/data.c
> @@ -729,6 +729,9 @@ static int f2fs_read_data_pages(struct file *file,
>  			struct list_head *pages, unsigned nr_pages)
>  {
>  	struct inode *inode = file->f_mapping->host;
> +	struct page *page = list_entry(pages->prev, struct page, lru);

IMO, it needs to avoid the above line.
Thanks,

> +
> +	trace_f2fs_readpages(inode, page, nr_pages);
>  
>  	/* If the file has inline data, skip readpages */
>  	if (f2fs_has_inline_data(inode))
> diff --git a/include/trace/events/f2fs.h b/include/trace/events/f2fs.h
> index b983990..7fbaaaa 100644
> --- a/include/trace/events/f2fs.h
> +++ b/include/trace/events/f2fs.h
> @@ -847,6 +847,32 @@ TRACE_EVENT(f2fs_writepages,
>  		__entry->for_sync)
>  );
>  
> +TRACE_EVENT(f2fs_readpages,
> +
> +	TP_PROTO(struct inode *inode, struct page *page, unsigned int nrpage),
> +
> +	TP_ARGS(inode, page, nrpage),
> +
> +	TP_STRUCT__entry(
> +		__field(dev_t,	dev)
> +		__field(ino_t,	ino)
> +		__field(pgoff_t,	start)
> +		__field(unsigned int,	nrpage)
> +	),
> +
> +	TP_fast_assign(
> +		__entry->dev	= inode->i_sb->s_dev;
> +		__entry->ino	= inode->i_ino;
> +		__entry->start	= page->index;
> +		__entry->nrpage	= nrpage;
> +	),
> +
> +	TP_printk("dev = (%d,%d), ino = %lu, start = %lu nrpage = %u",
> +		show_dev_ino(__entry),
> +		(unsigned long)__entry->start,
> +		__entry->nrpage)
> +);
> +
>  TRACE_EVENT(f2fs_submit_page_mbio,
>  
>  	TP_PROTO(struct page *page, int rw, int type, block_t blk_addr),

-- 
Jaegeuk Kim
Samsung



------------------------------------------------------------------------------
Is your legacy SCM system holding you back? Join Perforce May 7 to find out:
&#149; 3 signs your SCM is hindering your productivity
&#149; Requirements for releasing software faster
&#149; Expert tips and advice for migrating your SCM now
http://p.sf.net/sfu/perforce
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

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

* RE: [f2fs-dev][PATCH 6/6] f2fs: add a tracepoint for f2fs_read_data_pages
  2014-05-07  0:29 ` [PATCH " Jaegeuk Kim
@ 2014-05-08  8:58   ` Chao Yu
  0 siblings, 0 replies; 3+ messages in thread
From: Chao Yu @ 2014-05-08  8:58 UTC (permalink / raw)
  To: jaegeuk.kim; +Cc: linux-f2fs-devel, linux-fsdevel, linux-kernel

Hi Kim,

> -----Original Message-----
> From: Jaegeuk Kim [mailto:jaegeuk.kim@samsung.com]
> Sent: Wednesday, May 07, 2014 8:30 AM
> To: Chao Yu
> Cc: linux-f2fs-devel@lists.sourceforge.net; linux-fsdevel@vger.kernel.org;
> linux-kernel@vger.kernel.org
> Subject: Re: [f2fs-dev][PATCH 6/6] f2fs: add a tracepoint for f2fs_read_data_pages
> 
> Hi Chao,
> 
> 2014-05-06 (화), 16:54 +0800, Chao Yu:
> > This patch adds a tracepoint for f2fs_read_data_pages to trace when pages are
> > readahead by VFS.
> >
> > Signed-off-by: Chao Yu <chao2.yu@samsung.com>
> > ---
> >  fs/f2fs/data.c              |    3 +++
> >  include/trace/events/f2fs.h |   26 ++++++++++++++++++++++++++
> >  2 files changed, 29 insertions(+)
> >
> > diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
> > index 8c250a5..f2d1e8a 100644
> > --- a/fs/f2fs/data.c
> > +++ b/fs/f2fs/data.c
> > @@ -729,6 +729,9 @@ static int f2fs_read_data_pages(struct file *file,
> >  			struct list_head *pages, unsigned nr_pages)
> >  {
> >  	struct inode *inode = file->f_mapping->host;
> > +	struct page *page = list_entry(pages->prev, struct page, lru);
> 
> IMO, it needs to avoid the above line.

Maybe it’s not safe to access page directly in lru list here.
Let's ignore this patch.
Thanks.

> Thanks,
> 
> > +
> > +	trace_f2fs_readpages(inode, page, nr_pages);
> >
> >  	/* If the file has inline data, skip readpages */
> >  	if (f2fs_has_inline_data(inode))
> > diff --git a/include/trace/events/f2fs.h b/include/trace/events/f2fs.h
> > index b983990..7fbaaaa 100644
> > --- a/include/trace/events/f2fs.h
> > +++ b/include/trace/events/f2fs.h
> > @@ -847,6 +847,32 @@ TRACE_EVENT(f2fs_writepages,
> >  		__entry->for_sync)
> >  );
> >
> > +TRACE_EVENT(f2fs_readpages,
> > +
> > +	TP_PROTO(struct inode *inode, struct page *page, unsigned int nrpage),
> > +
> > +	TP_ARGS(inode, page, nrpage),
> > +
> > +	TP_STRUCT__entry(
> > +		__field(dev_t,	dev)
> > +		__field(ino_t,	ino)
> > +		__field(pgoff_t,	start)
> > +		__field(unsigned int,	nrpage)
> > +	),
> > +
> > +	TP_fast_assign(
> > +		__entry->dev	= inode->i_sb->s_dev;
> > +		__entry->ino	= inode->i_ino;
> > +		__entry->start	= page->index;
> > +		__entry->nrpage	= nrpage;
> > +	),
> > +
> > +	TP_printk("dev = (%d,%d), ino = %lu, start = %lu nrpage = %u",
> > +		show_dev_ino(__entry),
> > +		(unsigned long)__entry->start,
> > +		__entry->nrpage)
> > +);
> > +
> >  TRACE_EVENT(f2fs_submit_page_mbio,
> >
> >  	TP_PROTO(struct page *page, int rw, int type, block_t blk_addr),
> 
> --
> Jaegeuk Kim
> Samsung

--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

end of thread, other threads:[~2014-05-08  8:58 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-06  8:54 [f2fs-dev][PATCH 6/6] f2fs: add a tracepoint for f2fs_read_data_pages Chao Yu
2014-05-07  0:29 ` [PATCH " Jaegeuk Kim
2014-05-08  8:58   ` [f2fs-dev][PATCH " Chao Yu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).