Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
ed1777de TH |
2 | #undef TRACE_SYSTEM |
3 | #define TRACE_SYSTEM cgroup | |
4 | ||
5 | #if !defined(_TRACE_CGROUP_H) || defined(TRACE_HEADER_MULTI_READ) | |
6 | #define _TRACE_CGROUP_H | |
7 | ||
8 | #include <linux/cgroup.h> | |
9 | #include <linux/tracepoint.h> | |
10 | ||
11 | DECLARE_EVENT_CLASS(cgroup_root, | |
12 | ||
13 | TP_PROTO(struct cgroup_root *root), | |
14 | ||
15 | TP_ARGS(root), | |
16 | ||
17 | TP_STRUCT__entry( | |
18 | __field( int, root ) | |
19 | __field( u16, ss_mask ) | |
20 | __string( name, root->name ) | |
21 | ), | |
22 | ||
23 | TP_fast_assign( | |
24 | __entry->root = root->hierarchy_id; | |
25 | __entry->ss_mask = root->subsys_mask; | |
26 | __assign_str(name, root->name); | |
27 | ), | |
28 | ||
29 | TP_printk("root=%d ss_mask=%#x name=%s", | |
30 | __entry->root, __entry->ss_mask, __get_str(name)) | |
31 | ); | |
32 | ||
33 | DEFINE_EVENT(cgroup_root, cgroup_setup_root, | |
34 | ||
35 | TP_PROTO(struct cgroup_root *root), | |
36 | ||
37 | TP_ARGS(root) | |
38 | ); | |
39 | ||
40 | DEFINE_EVENT(cgroup_root, cgroup_destroy_root, | |
41 | ||
42 | TP_PROTO(struct cgroup_root *root), | |
43 | ||
44 | TP_ARGS(root) | |
45 | ); | |
46 | ||
47 | DEFINE_EVENT(cgroup_root, cgroup_remount, | |
48 | ||
49 | TP_PROTO(struct cgroup_root *root), | |
50 | ||
51 | TP_ARGS(root) | |
52 | ); | |
53 | ||
54 | DECLARE_EVENT_CLASS(cgroup, | |
55 | ||
e4f8d81c | 56 | TP_PROTO(struct cgroup *cgrp, const char *path), |
ed1777de | 57 | |
e4f8d81c | 58 | TP_ARGS(cgrp, path), |
ed1777de TH |
59 | |
60 | TP_STRUCT__entry( | |
61 | __field( int, root ) | |
62 | __field( int, id ) | |
63 | __field( int, level ) | |
e4f8d81c | 64 | __string( path, path ) |
ed1777de TH |
65 | ), |
66 | ||
67 | TP_fast_assign( | |
68 | __entry->root = cgrp->root->hierarchy_id; | |
69 | __entry->id = cgrp->id; | |
70 | __entry->level = cgrp->level; | |
e4f8d81c | 71 | __assign_str(path, path); |
ed1777de TH |
72 | ), |
73 | ||
74 | TP_printk("root=%d id=%d level=%d path=%s", | |
75 | __entry->root, __entry->id, __entry->level, __get_str(path)) | |
76 | ); | |
77 | ||
78 | DEFINE_EVENT(cgroup, cgroup_mkdir, | |
79 | ||
e4f8d81c | 80 | TP_PROTO(struct cgroup *cgrp, const char *path), |
ed1777de | 81 | |
e4f8d81c | 82 | TP_ARGS(cgrp, path) |
ed1777de TH |
83 | ); |
84 | ||
85 | DEFINE_EVENT(cgroup, cgroup_rmdir, | |
86 | ||
e4f8d81c | 87 | TP_PROTO(struct cgroup *cgrp, const char *path), |
ed1777de | 88 | |
e4f8d81c | 89 | TP_ARGS(cgrp, path) |
ed1777de TH |
90 | ); |
91 | ||
92 | DEFINE_EVENT(cgroup, cgroup_release, | |
93 | ||
e4f8d81c | 94 | TP_PROTO(struct cgroup *cgrp, const char *path), |
ed1777de | 95 | |
e4f8d81c | 96 | TP_ARGS(cgrp, path) |
ed1777de TH |
97 | ); |
98 | ||
99 | DEFINE_EVENT(cgroup, cgroup_rename, | |
100 | ||
e4f8d81c | 101 | TP_PROTO(struct cgroup *cgrp, const char *path), |
ed1777de | 102 | |
e4f8d81c | 103 | TP_ARGS(cgrp, path) |
ed1777de TH |
104 | ); |
105 | ||
4c476d8c RG |
106 | DEFINE_EVENT(cgroup, cgroup_freeze, |
107 | ||
108 | TP_PROTO(struct cgroup *cgrp, const char *path), | |
109 | ||
110 | TP_ARGS(cgrp, path) | |
111 | ); | |
112 | ||
113 | DEFINE_EVENT(cgroup, cgroup_unfreeze, | |
114 | ||
115 | TP_PROTO(struct cgroup *cgrp, const char *path), | |
116 | ||
117 | TP_ARGS(cgrp, path) | |
118 | ); | |
119 | ||
ed1777de TH |
120 | DECLARE_EVENT_CLASS(cgroup_migrate, |
121 | ||
e4f8d81c SRV |
122 | TP_PROTO(struct cgroup *dst_cgrp, const char *path, |
123 | struct task_struct *task, bool threadgroup), | |
ed1777de | 124 | |
e4f8d81c | 125 | TP_ARGS(dst_cgrp, path, task, threadgroup), |
ed1777de TH |
126 | |
127 | TP_STRUCT__entry( | |
128 | __field( int, dst_root ) | |
129 | __field( int, dst_id ) | |
130 | __field( int, dst_level ) | |
ed1777de | 131 | __field( int, pid ) |
e4f8d81c | 132 | __string( dst_path, path ) |
ed1777de TH |
133 | __string( comm, task->comm ) |
134 | ), | |
135 | ||
136 | TP_fast_assign( | |
137 | __entry->dst_root = dst_cgrp->root->hierarchy_id; | |
138 | __entry->dst_id = dst_cgrp->id; | |
139 | __entry->dst_level = dst_cgrp->level; | |
e4f8d81c | 140 | __assign_str(dst_path, path); |
ed1777de TH |
141 | __entry->pid = task->pid; |
142 | __assign_str(comm, task->comm); | |
143 | ), | |
144 | ||
145 | TP_printk("dst_root=%d dst_id=%d dst_level=%d dst_path=%s pid=%d comm=%s", | |
146 | __entry->dst_root, __entry->dst_id, __entry->dst_level, | |
147 | __get_str(dst_path), __entry->pid, __get_str(comm)) | |
148 | ); | |
149 | ||
150 | DEFINE_EVENT(cgroup_migrate, cgroup_attach_task, | |
151 | ||
e4f8d81c SRV |
152 | TP_PROTO(struct cgroup *dst_cgrp, const char *path, |
153 | struct task_struct *task, bool threadgroup), | |
ed1777de | 154 | |
e4f8d81c | 155 | TP_ARGS(dst_cgrp, path, task, threadgroup) |
ed1777de TH |
156 | ); |
157 | ||
158 | DEFINE_EVENT(cgroup_migrate, cgroup_transfer_tasks, | |
159 | ||
e4f8d81c SRV |
160 | TP_PROTO(struct cgroup *dst_cgrp, const char *path, |
161 | struct task_struct *task, bool threadgroup), | |
ed1777de | 162 | |
e4f8d81c | 163 | TP_ARGS(dst_cgrp, path, task, threadgroup) |
ed1777de TH |
164 | ); |
165 | ||
4c476d8c RG |
166 | DECLARE_EVENT_CLASS(cgroup_event, |
167 | ||
168 | TP_PROTO(struct cgroup *cgrp, const char *path, int val), | |
169 | ||
170 | TP_ARGS(cgrp, path, val), | |
171 | ||
172 | TP_STRUCT__entry( | |
173 | __field( int, root ) | |
174 | __field( int, id ) | |
175 | __field( int, level ) | |
176 | __string( path, path ) | |
177 | __field( int, val ) | |
178 | ), | |
179 | ||
180 | TP_fast_assign( | |
181 | __entry->root = cgrp->root->hierarchy_id; | |
182 | __entry->id = cgrp->id; | |
183 | __entry->level = cgrp->level; | |
184 | __assign_str(path, path); | |
185 | __entry->val = val; | |
186 | ), | |
187 | ||
188 | TP_printk("root=%d id=%d level=%d path=%s val=%d", | |
189 | __entry->root, __entry->id, __entry->level, __get_str(path), | |
190 | __entry->val) | |
191 | ); | |
192 | ||
193 | DEFINE_EVENT(cgroup_event, cgroup_notify_populated, | |
194 | ||
195 | TP_PROTO(struct cgroup *cgrp, const char *path, int val), | |
196 | ||
197 | TP_ARGS(cgrp, path, val) | |
198 | ); | |
199 | ||
200 | DEFINE_EVENT(cgroup_event, cgroup_notify_frozen, | |
201 | ||
202 | TP_PROTO(struct cgroup *cgrp, const char *path, int val), | |
203 | ||
204 | TP_ARGS(cgrp, path, val) | |
205 | ); | |
206 | ||
ed1777de TH |
207 | #endif /* _TRACE_CGROUP_H */ |
208 | ||
209 | /* This part must be outside protection */ | |
210 | #include <trace/define_trace.h> |