ext4: Change remaining tracepoints to use folio
authorRitesh Harjani <ritesh.list@gmail.com>
Mon, 15 May 2023 10:40:42 +0000 (16:10 +0530)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 15 Jun 2023 04:02:10 +0000 (00:02 -0400)
ext4_readpage() is converted to ext4_read_folio() hence change the
related tracepoint from trace_ext4_readpage(page) to
trace_ext4_read_folio(folio). Do the same for
trace_ext4_releasepage(page) to trace_ext4_release_folio(folio)

As a minor bit of optimization to avoid an extra dereferencing,
since both of the above functions already were dereferencing
folio->mapping->host, hence change the tracepoint argument to take
(inode, folio).

Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
Link: https://lore.kernel.org/r/caba2b3c0147bed4ea7706767dc1d19cd0e29ab0.1684122756.git.ritesh.list@gmail.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/ext4/inode.c
include/trace/events/ext4.h

index 02de439..e76a952 100644 (file)
@@ -3105,7 +3105,7 @@ static int ext4_read_folio(struct file *file, struct folio *folio)
        int ret = -EAGAIN;
        struct inode *inode = folio->mapping->host;
 
-       trace_ext4_readpage(&folio->page);
+       trace_ext4_read_folio(inode, folio);
 
        if (ext4_has_inline_data(inode))
                ret = ext4_readpage_inline(inode, folio);
@@ -3164,9 +3164,10 @@ static void ext4_journalled_invalidate_folio(struct folio *folio,
 
 static bool ext4_release_folio(struct folio *folio, gfp_t wait)
 {
-       journal_t *journal = EXT4_JOURNAL(folio->mapping->host);
+       struct inode *inode = folio->mapping->host;
+       journal_t *journal = EXT4_JOURNAL(inode);
 
-       trace_ext4_releasepage(&folio->page);
+       trace_ext4_release_folio(inode, folio);
 
        /* Page has dirty journalled data -> cannot release */
        if (folio_test_checked(folio))
index ebccf6a..54cd509 100644 (file)
@@ -560,10 +560,10 @@ TRACE_EVENT(ext4_writepages_result,
                  (unsigned long) __entry->writeback_index)
 );
 
-DECLARE_EVENT_CLASS(ext4__page_op,
-       TP_PROTO(struct page *page),
+DECLARE_EVENT_CLASS(ext4__folio_op,
+       TP_PROTO(struct inode *inode, struct folio *folio),
 
-       TP_ARGS(page),
+       TP_ARGS(inode, folio),
 
        TP_STRUCT__entry(
                __field(        dev_t,  dev                     )
@@ -573,29 +573,29 @@ DECLARE_EVENT_CLASS(ext4__page_op,
        ),
 
        TP_fast_assign(
-               __entry->dev    = page->mapping->host->i_sb->s_dev;
-               __entry->ino    = page->mapping->host->i_ino;
-               __entry->index  = page->index;
+               __entry->dev    = inode->i_sb->s_dev;
+               __entry->ino    = inode->i_ino;
+               __entry->index  = folio->index;
        ),
 
-       TP_printk("dev %d,%d ino %lu page_index %lu",
+       TP_printk("dev %d,%d ino %lu folio_index %lu",
                  MAJOR(__entry->dev), MINOR(__entry->dev),
                  (unsigned long) __entry->ino,
                  (unsigned long) __entry->index)
 );
 
-DEFINE_EVENT(ext4__page_op, ext4_readpage,
+DEFINE_EVENT(ext4__folio_op, ext4_read_folio,
 
-       TP_PROTO(struct page *page),
+       TP_PROTO(struct inode *inode, struct folio *folio),
 
-       TP_ARGS(page)
+       TP_ARGS(inode, folio)
 );
 
-DEFINE_EVENT(ext4__page_op, ext4_releasepage,
+DEFINE_EVENT(ext4__folio_op, ext4_release_folio,
 
-       TP_PROTO(struct page *page),
+       TP_PROTO(struct inode *inode, struct folio *folio),
 
-       TP_ARGS(page)
+       TP_ARGS(inode, folio)
 );
 
 DECLARE_EVENT_CLASS(ext4_invalidate_folio_op,