1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #undef TRACE_SYSTEM 3 #define TRACE_SYSTEM mmap_lock 4 5 #if !defined(_TRACE_MMAP_LOCK_H) || defined(TRACE_HEADER_MULTI_READ) 6 #define _TRACE_MMAP_LOCK_H 7 8 #include <linux/tracepoint.h> 9 #include <linux/types.h> 10 11 struct mm_struct; 12 13 extern int trace_mmap_lock_reg(void); 14 extern void trace_mmap_lock_unreg(void); 15 16 DECLARE_EVENT_CLASS(mmap_lock, 17 18 TP_PROTO(struct mm_struct *mm, const char *memcg_path, bool write), 19 20 TP_ARGS(mm, memcg_path, write), 21 22 TP_STRUCT__entry( 23 __field(struct mm_struct *, mm) 24 __string(memcg_path, memcg_path) 25 __field(bool, write) 26 ), 27 28 TP_fast_assign( 29 __entry->mm = mm; 30 __assign_str(memcg_path); 31 __entry->write = write; 32 ), 33 34 TP_printk( 35 "mm=%p memcg_path=%s write=%s", 36 __entry->mm, 37 __get_str(memcg_path), 38 __entry->write ? "true" : "false" 39 ) 40 ); 41 42 #define DEFINE_MMAP_LOCK_EVENT(name) \ 43 DEFINE_EVENT_FN(mmap_lock, name, \ 44 TP_PROTO(struct mm_struct *mm, const char *memcg_path, \ 45 bool write), \ 46 TP_ARGS(mm, memcg_path, write), \ 47 trace_mmap_lock_reg, trace_mmap_lock_unreg) 48 49 DEFINE_MMAP_LOCK_EVENT(mmap_lock_start_locking); 50 DEFINE_MMAP_LOCK_EVENT(mmap_lock_released); 51 52 TRACE_EVENT_FN(mmap_lock_acquire_returned, 53 54 TP_PROTO(struct mm_struct *mm, const char *memcg_path, bool write, 55 bool success), 56 57 TP_ARGS(mm, memcg_path, write, success), 58 59 TP_STRUCT__entry( 60 __field(struct mm_struct *, mm) 61 __string(memcg_path, memcg_path) 62 __field(bool, write) 63 __field(bool, success) 64 ), 65 66 TP_fast_assign( 67 __entry->mm = mm; 68 __assign_str(memcg_path); 69 __entry->write = write; 70 __entry->success = success; 71 ), 72 73 TP_printk( 74 "mm=%p memcg_path=%s write=%s success=%s", 75 __entry->mm, 76 __get_str(memcg_path), 77 __entry->write ? "true" : "false", 78 __entry->success ? "true" : "false" 79 ), 80 81 trace_mmap_lock_reg, trace_mmap_lock_unreg 82 ); 83 84 #endif /* _TRACE_MMAP_LOCK_H */ 85 86 /* This part must be outside protection */ 87 #include <trace/define_trace.h> 88
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.