From 9135fc80e83e7d3c1fd85cc377def2f13a2b31cf Mon Sep 17 00:00:00 2001 From: Robert Jarzmik Date: Wed, 27 Mar 2013 10:24:16 +1100 Subject: [PATCH] mm-trace-filemap-add-and-del-v2 - took Stephen's comment into account (use FTrace templates) - took Andrew's comment into account (trace out of lock) Cc: Dave Chinner Cc: Hugh Dickins Cc: Steven Rostedt Cc: Frederic Weisbecker Cc: Ingo Molnar Signed-off-by: Andrew Morton --- include/trace/events/filemap.h | 37 ++++++++-------------------------- mm/filemap.c | 2 +- 2 files changed, 9 insertions(+), 30 deletions(-) diff --git a/include/trace/events/filemap.h b/include/trace/events/filemap.h index 2d3638672311..0421f49a20f7 100644 --- a/include/trace/events/filemap.h +++ b/include/trace/events/filemap.h @@ -11,7 +11,7 @@ #include #include -TRACE_EVENT(mm_filemap_delete_from_page_cache, +DECLARE_EVENT_CLASS(mm_filemap_op_page_cache, TP_PROTO(struct page *page), @@ -42,36 +42,15 @@ TRACE_EVENT(mm_filemap_delete_from_page_cache, __entry->index << PAGE_SHIFT) ); -TRACE_EVENT(mm_filemap_add_to_page_cache, - +DEFINE_EVENT(mm_filemap_op_page_cache, mm_filemap_delete_from_page_cache, TP_PROTO(struct page *page), + TP_ARGS(page) + ); - TP_ARGS(page), - - TP_STRUCT__entry( - __field(struct page *, page) - __field(unsigned long, i_ino) - __field(unsigned long, index) - __field(dev_t, s_dev) - ), - - TP_fast_assign( - __entry->page = page; - __entry->i_ino = page->mapping->host->i_ino; - __entry->index = page->index; - if (page->mapping->host->i_sb) - __entry->s_dev = page->mapping->host->i_sb->s_dev; - else - __entry->s_dev = page->mapping->host->i_rdev; - ), - - TP_printk("dev %d:%d ino %lx page=%p pfn=%lu ofs=%lu", - MAJOR(__entry->s_dev), MINOR(__entry->s_dev), - __entry->i_ino, - __entry->page, - page_to_pfn(__entry->page), - __entry->index << PAGE_SHIFT) -); +DEFINE_EVENT(mm_filemap_op_page_cache, mm_filemap_add_to_page_cache, + TP_PROTO(struct page *page), + TP_ARGS(page) + ); #endif /* _TRACE_FILEMAP_H */ diff --git a/mm/filemap.c b/mm/filemap.c index 9824c8af6004..80590c5ea97e 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -467,8 +467,8 @@ int add_to_page_cache_locked(struct page *page, struct address_space *mapping, if (likely(!error)) { mapping->nrpages++; __inc_zone_page_state(page, NR_FILE_PAGES); - trace_mm_filemap_add_to_page_cache(page); spin_unlock_irq(&mapping->tree_lock); + trace_mm_filemap_add_to_page_cache(page); } else { page->mapping = NULL; /* Leave page->index set: truncation relies upon it */ -- 2.39.5