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 TRACE_EVENT(hugepage_invalidate,
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("hugepage invalidate at addr 0x%lx and pte = 0x%lx",
26 		      __entry->addr, __entry->pte)
27 );
28 
29 TRACE_EVENT(hugepage_set_pmd,
30 
31 	    TP_PROTO(unsigned long addr, unsigned long pmd),
32 	    TP_ARGS(addr, pmd),
33 	    TP_STRUCT__entry(
34 		    __field(unsigned long, addr)
35 		    __field(unsigned long, pmd)
36 		    ),
37 
38 	    TP_fast_assign(
39 		    __entry->addr = addr;
40 		    __entry->pmd = pmd;
41 		    ),
42 
43 	    TP_printk("Set pmd with 0x%lx with 0x%lx", __entry->addr, __entry->pmd)
44 );
45 
46 
47 TRACE_EVENT(hugepage_update,
48 
49 	    TP_PROTO(unsigned long addr, unsigned long pte, unsigned long clr, unsigned long set),
50 	    TP_ARGS(addr, pte, clr, set),
51 	    TP_STRUCT__entry(
52 		    __field(unsigned long, addr)
53 		    __field(unsigned long, pte)
54 		    __field(unsigned long, clr)
55 		    __field(unsigned long, set)
56 		    ),
57 
58 	    TP_fast_assign(
59 		    __entry->addr = addr;
60 		    __entry->pte = pte;
61 		    __entry->clr = clr;
62 		    __entry->set = set;
63 
64 		    ),
65 
66 	    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)
67 );
68 TRACE_EVENT(hugepage_splitting,
69 
70 	    TP_PROTO(unsigned long addr, unsigned long pte),
71 	    TP_ARGS(addr, pte),
72 	    TP_STRUCT__entry(
73 		    __field(unsigned long, addr)
74 		    __field(unsigned long, pte)
75 		    ),
76 
77 	    TP_fast_assign(
78 		    __entry->addr = addr;
79 		    __entry->pte = pte;
80 		    ),
81 
82 	    TP_printk("hugepage splitting at addr 0x%lx and pte = 0x%lx",
83 		      __entry->addr, __entry->pte)
84 );
85 
86 #endif /* _TRACE_THP_H */
87 
88 /* This part must be outside protection */
89 #include <trace/define_trace.h>
90