summaryrefslogtreecommitdiffstats
path: root/include/trace/events/filemap.h
diff options
context:
space:
mode:
authorNamhyung Kim2015-04-06 07:36:09 +0200
committerArnaldo Carvalho de Melo2015-04-13 16:44:52 +0200
commit9fdd8a875c6f3b02af48d5fa426206ca009b2b06 (patch)
tree9a37cc4e8fc35c333bdfe35075bb3ba1b82bbf18 /include/trace/events/filemap.h
parentperf/x86/intel/pt: Clean up the control flow in pt_pmu_hw_init() (diff)
downloadkernel-qcow2-linux-9fdd8a875c6f3b02af48d5fa426206ca009b2b06.tar.gz
kernel-qcow2-linux-9fdd8a875c6f3b02af48d5fa426206ca009b2b06.tar.xz
kernel-qcow2-linux-9fdd8a875c6f3b02af48d5fa426206ca009b2b06.zip
tracing, mm: Record pfn instead of pointer to struct page
The struct page is opaque for userspace tools, so it'd be better to save pfn in order to identify page frames. The textual output of $debugfs/tracing/trace file remains unchanged and only raw (binary) data format is changed - but thanks to libtraceevent, userspace tools which deal with the raw data (like perf and trace-cmd) can parse the format easily. So impact on the userspace will also be minimal. Signed-off-by: Namhyung Kim <namhyung@kernel.org> Based-on-patch-by: Joonsoo Kim <js1304@gmail.com> Acked-by: Ingo Molnar <mingo@kernel.org> Acked-by: Steven Rostedt <rostedt@goodmis.org> Cc: David Ahern <dsahern@gmail.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Minchan Kim <minchan@kernel.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: linux-mm@kvack.org Link: http://lkml.kernel.org/r/1428298576-9785-3-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'include/trace/events/filemap.h')
-rw-r--r--include/trace/events/filemap.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/include/trace/events/filemap.h b/include/trace/events/filemap.h
index 0421f49a20f7..42febb6bc1d5 100644
--- a/include/trace/events/filemap.h
+++ b/include/trace/events/filemap.h
@@ -18,14 +18,14 @@ DECLARE_EVENT_CLASS(mm_filemap_op_page_cache,
TP_ARGS(page),
TP_STRUCT__entry(
- __field(struct page *, page)
+ __field(unsigned long, pfn)
__field(unsigned long, i_ino)
__field(unsigned long, index)
__field(dev_t, s_dev)
),
TP_fast_assign(
- __entry->page = page;
+ __entry->pfn = page_to_pfn(page);
__entry->i_ino = page->mapping->host->i_ino;
__entry->index = page->index;
if (page->mapping->host->i_sb)
@@ -37,8 +37,8 @@ DECLARE_EVENT_CLASS(mm_filemap_op_page_cache,
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),
+ pfn_to_page(__entry->pfn),
+ __entry->pfn,
__entry->index << PAGE_SHIFT)
);