xref: /openbmc/linux/include/trace/events/page_ref.h (revision 762f99f4f3cb41a775b5157dd761217beba65873)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
295813b8fSJoonsoo Kim #undef TRACE_SYSTEM
395813b8fSJoonsoo Kim #define TRACE_SYSTEM page_ref
495813b8fSJoonsoo Kim 
595813b8fSJoonsoo Kim #if !defined(_TRACE_PAGE_REF_H) || defined(TRACE_HEADER_MULTI_READ)
695813b8fSJoonsoo Kim #define _TRACE_PAGE_REF_H
795813b8fSJoonsoo Kim 
895813b8fSJoonsoo Kim #include <linux/types.h>
995813b8fSJoonsoo Kim #include <linux/page_ref.h>
1095813b8fSJoonsoo Kim #include <linux/tracepoint.h>
1195813b8fSJoonsoo Kim #include <trace/events/mmflags.h>
1295813b8fSJoonsoo Kim 
1395813b8fSJoonsoo Kim DECLARE_EVENT_CLASS(page_ref_mod_template,
1495813b8fSJoonsoo Kim 
1595813b8fSJoonsoo Kim 	TP_PROTO(struct page *page, int v),
1695813b8fSJoonsoo Kim 
1795813b8fSJoonsoo Kim 	TP_ARGS(page, v),
1895813b8fSJoonsoo Kim 
1995813b8fSJoonsoo Kim 	TP_STRUCT__entry(
2095813b8fSJoonsoo Kim 		__field(unsigned long, pfn)
2195813b8fSJoonsoo Kim 		__field(unsigned long, flags)
2295813b8fSJoonsoo Kim 		__field(int, count)
2395813b8fSJoonsoo Kim 		__field(int, mapcount)
2495813b8fSJoonsoo Kim 		__field(void *, mapping)
2595813b8fSJoonsoo Kim 		__field(int, mt)
2695813b8fSJoonsoo Kim 		__field(int, val)
2795813b8fSJoonsoo Kim 	),
2895813b8fSJoonsoo Kim 
2995813b8fSJoonsoo Kim 	TP_fast_assign(
3095813b8fSJoonsoo Kim 		__entry->pfn = page_to_pfn(page);
3195813b8fSJoonsoo Kim 		__entry->flags = page->flags;
3295813b8fSJoonsoo Kim 		__entry->count = page_ref_count(page);
3395813b8fSJoonsoo Kim 		__entry->mapcount = page_mapcount(page);
3495813b8fSJoonsoo Kim 		__entry->mapping = page->mapping;
3595813b8fSJoonsoo Kim 		__entry->mt = get_pageblock_migratetype(page);
3695813b8fSJoonsoo Kim 		__entry->val = v;
3795813b8fSJoonsoo Kim 	),
3895813b8fSJoonsoo Kim 
3995813b8fSJoonsoo Kim 	TP_printk("pfn=0x%lx flags=%s count=%d mapcount=%d mapping=%p mt=%d val=%d",
4095813b8fSJoonsoo Kim 		__entry->pfn,
41*41c961b9SMuchun Song 		show_page_flags(__entry->flags & PAGEFLAGS_MASK),
4295813b8fSJoonsoo Kim 		__entry->count,
4395813b8fSJoonsoo Kim 		__entry->mapcount, __entry->mapping, __entry->mt,
4495813b8fSJoonsoo Kim 		__entry->val)
4595813b8fSJoonsoo Kim );
4695813b8fSJoonsoo Kim 
4795813b8fSJoonsoo Kim DEFINE_EVENT(page_ref_mod_template, page_ref_set,
4895813b8fSJoonsoo Kim 
4995813b8fSJoonsoo Kim 	TP_PROTO(struct page *page, int v),
5095813b8fSJoonsoo Kim 
5195813b8fSJoonsoo Kim 	TP_ARGS(page, v)
5295813b8fSJoonsoo Kim );
5395813b8fSJoonsoo Kim 
5495813b8fSJoonsoo Kim DEFINE_EVENT(page_ref_mod_template, page_ref_mod,
5595813b8fSJoonsoo Kim 
5695813b8fSJoonsoo Kim 	TP_PROTO(struct page *page, int v),
5795813b8fSJoonsoo Kim 
5895813b8fSJoonsoo Kim 	TP_ARGS(page, v)
5995813b8fSJoonsoo Kim );
6095813b8fSJoonsoo Kim 
6195813b8fSJoonsoo Kim DECLARE_EVENT_CLASS(page_ref_mod_and_test_template,
6295813b8fSJoonsoo Kim 
6395813b8fSJoonsoo Kim 	TP_PROTO(struct page *page, int v, int ret),
6495813b8fSJoonsoo Kim 
6595813b8fSJoonsoo Kim 	TP_ARGS(page, v, ret),
6695813b8fSJoonsoo Kim 
6795813b8fSJoonsoo Kim 	TP_STRUCT__entry(
6895813b8fSJoonsoo Kim 		__field(unsigned long, pfn)
6995813b8fSJoonsoo Kim 		__field(unsigned long, flags)
7095813b8fSJoonsoo Kim 		__field(int, count)
7195813b8fSJoonsoo Kim 		__field(int, mapcount)
7295813b8fSJoonsoo Kim 		__field(void *, mapping)
7395813b8fSJoonsoo Kim 		__field(int, mt)
7495813b8fSJoonsoo Kim 		__field(int, val)
7595813b8fSJoonsoo Kim 		__field(int, ret)
7695813b8fSJoonsoo Kim 	),
7795813b8fSJoonsoo Kim 
7895813b8fSJoonsoo Kim 	TP_fast_assign(
7995813b8fSJoonsoo Kim 		__entry->pfn = page_to_pfn(page);
8095813b8fSJoonsoo Kim 		__entry->flags = page->flags;
8195813b8fSJoonsoo Kim 		__entry->count = page_ref_count(page);
8295813b8fSJoonsoo Kim 		__entry->mapcount = page_mapcount(page);
8395813b8fSJoonsoo Kim 		__entry->mapping = page->mapping;
8495813b8fSJoonsoo Kim 		__entry->mt = get_pageblock_migratetype(page);
8595813b8fSJoonsoo Kim 		__entry->val = v;
8695813b8fSJoonsoo Kim 		__entry->ret = ret;
8795813b8fSJoonsoo Kim 	),
8895813b8fSJoonsoo Kim 
8995813b8fSJoonsoo Kim 	TP_printk("pfn=0x%lx flags=%s count=%d mapcount=%d mapping=%p mt=%d val=%d ret=%d",
9095813b8fSJoonsoo Kim 		__entry->pfn,
91*41c961b9SMuchun Song 		show_page_flags(__entry->flags & PAGEFLAGS_MASK),
9295813b8fSJoonsoo Kim 		__entry->count,
9395813b8fSJoonsoo Kim 		__entry->mapcount, __entry->mapping, __entry->mt,
9495813b8fSJoonsoo Kim 		__entry->val, __entry->ret)
9595813b8fSJoonsoo Kim );
9695813b8fSJoonsoo Kim 
9795813b8fSJoonsoo Kim DEFINE_EVENT(page_ref_mod_and_test_template, page_ref_mod_and_test,
9895813b8fSJoonsoo Kim 
9995813b8fSJoonsoo Kim 	TP_PROTO(struct page *page, int v, int ret),
10095813b8fSJoonsoo Kim 
10195813b8fSJoonsoo Kim 	TP_ARGS(page, v, ret)
10295813b8fSJoonsoo Kim );
10395813b8fSJoonsoo Kim 
10495813b8fSJoonsoo Kim DEFINE_EVENT(page_ref_mod_and_test_template, page_ref_mod_and_return,
10595813b8fSJoonsoo Kim 
10695813b8fSJoonsoo Kim 	TP_PROTO(struct page *page, int v, int ret),
10795813b8fSJoonsoo Kim 
10895813b8fSJoonsoo Kim 	TP_ARGS(page, v, ret)
10995813b8fSJoonsoo Kim );
11095813b8fSJoonsoo Kim 
11195813b8fSJoonsoo Kim DEFINE_EVENT(page_ref_mod_and_test_template, page_ref_mod_unless,
11295813b8fSJoonsoo Kim 
11395813b8fSJoonsoo Kim 	TP_PROTO(struct page *page, int v, int ret),
11495813b8fSJoonsoo Kim 
11595813b8fSJoonsoo Kim 	TP_ARGS(page, v, ret)
11695813b8fSJoonsoo Kim );
11795813b8fSJoonsoo Kim 
11895813b8fSJoonsoo Kim DEFINE_EVENT(page_ref_mod_and_test_template, page_ref_freeze,
11995813b8fSJoonsoo Kim 
12095813b8fSJoonsoo Kim 	TP_PROTO(struct page *page, int v, int ret),
12195813b8fSJoonsoo Kim 
12295813b8fSJoonsoo Kim 	TP_ARGS(page, v, ret)
12395813b8fSJoonsoo Kim );
12495813b8fSJoonsoo Kim 
12595813b8fSJoonsoo Kim DEFINE_EVENT(page_ref_mod_template, page_ref_unfreeze,
12695813b8fSJoonsoo Kim 
12795813b8fSJoonsoo Kim 	TP_PROTO(struct page *page, int v),
12895813b8fSJoonsoo Kim 
12995813b8fSJoonsoo Kim 	TP_ARGS(page, v)
13095813b8fSJoonsoo Kim );
13195813b8fSJoonsoo Kim 
13295813b8fSJoonsoo Kim #endif /* _TRACE_PAGE_COUNT_H */
13395813b8fSJoonsoo Kim 
13495813b8fSJoonsoo Kim /* This part must be outside protection */
13595813b8fSJoonsoo Kim #include <trace/define_trace.h>
136