Merge tag 'trace-v6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux...
[linux-2.6-microblaze.git] / include / trace / events / mmap_lock.h
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, 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, 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>