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 | |