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 #ifdef CONFIG_PPC_BOOK3S_64 12 DECLARE_EVENT_CLASS(hugepage_set, 13 14 TP_PROTO(unsigned long addr, unsigned long pte), 15 TP_ARGS(addr, pte), 16 TP_STRUCT__entry( 17 __field(unsigned long, addr) 18 __field(unsigned long, pte) 19 ), 20 21 TP_fast_assign( 22 __entry->addr = addr; 23 __entry->pte = pte; 24 ), 25 26 TP_printk("Set page table entry with 0x%lx with 0x%lx", __entry->addr, __entry->pte) 27 ); 28 29 DEFINE_EVENT(hugepage_set, hugepage_set_pmd, 30 TP_PROTO(unsigned long addr, unsigned long pmd), 31 TP_ARGS(addr, pmd) 32 ); 33 34 DEFINE_EVENT(hugepage_set, hugepage_set_pud, 35 TP_PROTO(unsigned long addr, unsigned long pud), 36 TP_ARGS(addr, pud) 37 ); 38 39 DECLARE_EVENT_CLASS(hugepage_update, 40 41 TP_PROTO(unsigned long addr, unsigned long pte, unsigned long clr, unsigned long set), 42 TP_ARGS(addr, pte, clr, set), 43 TP_STRUCT__entry( 44 __field(unsigned long, addr) 45 __field(unsigned long, pte) 46 __field(unsigned long, clr) 47 __field(unsigned long, set) 48 ), 49 50 TP_fast_assign( 51 __entry->addr = addr; 52 __entry->pte = pte; 53 __entry->clr = clr; 54 __entry->set = set; 55 56 ), 57 58 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) 59 ); 60 61 DEFINE_EVENT(hugepage_update, hugepage_update_pmd, 62 TP_PROTO(unsigned long addr, unsigned long pmd, unsigned long clr, unsigned long set), 63 TP_ARGS(addr, pmd, clr, set) 64 ); 65 66 DEFINE_EVENT(hugepage_update, hugepage_update_pud, 67 TP_PROTO(unsigned long addr, unsigned long pud, unsigned long clr, unsigned long set), 68 TP_ARGS(addr, pud, clr, set) 69 ); 70 #endif /* CONFIG_PPC_BOOK3S_64 */ 71 72 DECLARE_EVENT_CLASS(migration_pmd, 73 74 TP_PROTO(unsigned long addr, unsigned long pmd), 75 76 TP_ARGS(addr, pmd), 77 78 TP_STRUCT__entry( 79 __field(unsigned long, addr) 80 __field(unsigned long, pmd) 81 ), 82 83 TP_fast_assign( 84 __entry->addr = addr; 85 __entry->pmd = pmd; 86 ), 87 TP_printk("addr=%lx, pmd=%lx", __entry->addr, __entry->pmd) 88 ); 89 90 DEFINE_EVENT(migration_pmd, set_migration_pmd, 91 TP_PROTO(unsigned long addr, unsigned long pmd), 92 TP_ARGS(addr, pmd) 93 ); 94 95 DEFINE_EVENT(migration_pmd, remove_migration_pmd, 96 TP_PROTO(unsigned long addr, unsigned long pmd), 97 TP_ARGS(addr, pmd) 98 ); 99 #endif /* _TRACE_THP_H */ 100 101 /* This part must be outside protection */ 102 #include <trace/define_trace.h> 103