]>
Commit | Line | Data |
---|---|---|
2b5067a8 AR |
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 | TRACE_EVENT_FN(mmap_lock_start_locking, | |
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, memcg_path); | |
31 | __entry->write = write; | |
32 | ), | |
33 | ||
34 | TP_printk( | |
35 | "mm=%p memcg_path=%s write=%s\n", | |
36 | __entry->mm, | |
37 | __get_str(memcg_path), | |
38 | __entry->write ? "true" : "false" | |
39 | ), | |
40 | ||
41 | trace_mmap_lock_reg, trace_mmap_lock_unreg | |
42 | ); | |
43 | ||
44 | TRACE_EVENT_FN(mmap_lock_acquire_returned, | |
45 | ||
46 | TP_PROTO(struct mm_struct *mm, const char *memcg_path, bool write, | |
47 | bool success), | |
48 | ||
49 | TP_ARGS(mm, memcg_path, write, success), | |
50 | ||
51 | TP_STRUCT__entry( | |
52 | __field(struct mm_struct *, mm) | |
53 | __string(memcg_path, memcg_path) | |
54 | __field(bool, write) | |
55 | __field(bool, success) | |
56 | ), | |
57 | ||
58 | TP_fast_assign( | |
59 | __entry->mm = mm; | |
60 | __assign_str(memcg_path, memcg_path); | |
61 | __entry->write = write; | |
62 | __entry->success = success; | |
63 | ), | |
64 | ||
65 | TP_printk( | |
66 | "mm=%p memcg_path=%s write=%s success=%s\n", | |
67 | __entry->mm, | |
68 | __get_str(memcg_path), | |
69 | __entry->write ? "true" : "false", | |
70 | __entry->success ? "true" : "false" | |
71 | ), | |
72 | ||
73 | trace_mmap_lock_reg, trace_mmap_lock_unreg | |
74 | ); | |
75 | ||
76 | TRACE_EVENT_FN(mmap_lock_released, | |
77 | ||
78 | TP_PROTO(struct mm_struct *mm, const char *memcg_path, bool write), | |
79 | ||
80 | TP_ARGS(mm, memcg_path, write), | |
81 | ||
82 | TP_STRUCT__entry( | |
83 | __field(struct mm_struct *, mm) | |
84 | __string(memcg_path, memcg_path) | |
85 | __field(bool, write) | |
86 | ), | |
87 | ||
88 | TP_fast_assign( | |
89 | __entry->mm = mm; | |
90 | __assign_str(memcg_path, memcg_path); | |
91 | __entry->write = write; | |
92 | ), | |
93 | ||
94 | TP_printk( | |
95 | "mm=%p memcg_path=%s write=%s\n", | |
96 | __entry->mm, | |
97 | __get_str(memcg_path), | |
98 | __entry->write ? "true" : "false" | |
99 | ), | |
100 | ||
101 | trace_mmap_lock_reg, trace_mmap_lock_unreg | |
102 | ); | |
103 | ||
104 | #endif /* _TRACE_MMAP_LOCK_H */ | |
105 | ||
106 | /* This part must be outside protection */ | |
107 | #include <trace/define_trace.h> |