xref: /linux/include/trace/events/thp.h (revision c532de5a67a70f8533d495f8f2aaa9a0491c3ad0)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #undef TRACE_SYSTEM
3 #define TRACE_SYSTEM thp
4 
5 #if !defined(_TRACE_THP_H) || defined(TRACE_HEADER_MULTI_READ)
6 #define _TRACE_THP_H
7 
8 #include <linux/types.h>
9 #include <linux/tracepoint.h>
10 
11 DECLARE_EVENT_CLASS(hugepage_set,
12 
13 	    TP_PROTO(unsigned long addr, unsigned long pte),
14 	    TP_ARGS(addr, pte),
15 	    TP_STRUCT__entry(
16 		    __field(unsigned long, addr)
17 		    __field(unsigned long, pte)
18 		    ),
19 
20 	    TP_fast_assign(
21 		    __entry->addr = addr;
22 		    __entry->pte = pte;
23 		    ),
24 
25 	    TP_printk("Set page table entry with 0x%lx with 0x%lx", __entry->addr, __entry->pte)
26 );
27 
28 DEFINE_EVENT(hugepage_set, hugepage_set_pmd,
29 	    TP_PROTO(unsigned long addr, unsigned long pmd),
30 	    TP_ARGS(addr, pmd)
31 );
32 
33 DEFINE_EVENT(hugepage_set, hugepage_set_pud,
34 	    TP_PROTO(unsigned long addr, unsigned long pud),
35 	    TP_ARGS(addr, pud)
36 );
37 
38 DECLARE_EVENT_CLASS(hugepage_update,
39 
40 	    TP_PROTO(unsigned long addr, unsigned long pte, unsigned long clr, unsigned long set),
41 	    TP_ARGS(addr, pte, clr, set),
42 	    TP_STRUCT__entry(
43 		    __field(unsigned long, addr)
44 		    __field(unsigned long, pte)
45 		    __field(unsigned long, clr)
46 		    __field(unsigned long, set)
47 		    ),
48 
49 	    TP_fast_assign(
50 		    __entry->addr = addr;
51 		    __entry->pte = pte;
52 		    __entry->clr = clr;
53 		    __entry->set = set;
54 
55 		    ),
56 
57 	    TP_printk("hugepage update at addr 0x%lx and pte = 0x%lx clr = 0x%lx, set = 0x%lx", __entry->addr, __entry->pte, __entry->clr, __entry->set)
58 );
59 
60 DEFINE_EVENT(hugepage_update, hugepage_update_pmd,
61 	    TP_PROTO(unsigned long addr, unsigned long pmd, unsigned long clr, unsigned long set),
62 	    TP_ARGS(addr, pmd, clr, set)
63 );
64 
65 DEFINE_EVENT(hugepage_update, hugepage_update_pud,
66 	    TP_PROTO(unsigned long addr, unsigned long pud, unsigned long clr, unsigned long set),
67 	    TP_ARGS(addr, pud, clr, set)
68 );
69 
70 DECLARE_EVENT_CLASS(migration_pmd,
71 
72 		TP_PROTO(unsigned long addr, unsigned long pmd),
73 
74 		TP_ARGS(addr, pmd),
75 
76 		TP_STRUCT__entry(
77 			__field(unsigned long, addr)
78 			__field(unsigned long, pmd)
79 		),
80 
81 		TP_fast_assign(
82 			__entry->addr = addr;
83 			__entry->pmd = pmd;
84 		),
85 		TP_printk("addr=%lx, pmd=%lx", __entry->addr, __entry->pmd)
86 );
87 
88 DEFINE_EVENT(migration_pmd, set_migration_pmd,
89 	TP_PROTO(unsigned long addr, unsigned long pmd),
90 	TP_ARGS(addr, pmd)
91 );
92 
93 DEFINE_EVENT(migration_pmd, remove_migration_pmd,
94 	TP_PROTO(unsigned long addr, unsigned long pmd),
95 	TP_ARGS(addr, pmd)
96 );
97 #endif /* _TRACE_THP_H */
98 
99 /* This part must be outside protection */
100 #include <trace/define_trace.h>
101