Add kernel probes for supplementary subsystems
[lttng-modules.git] / instrumentation / events / lttng-module / kmem.h
1 #undef TRACE_SYSTEM
2 #define TRACE_SYSTEM kmem
3
4 #if !defined(_TRACE_KMEM_H) || defined(TRACE_HEADER_MULTI_READ)
5 #define _TRACE_KMEM_H
6
7 DECLARE_EVENT_CLASS(kmem_alloc,
8
9 TP_PROTO(unsigned long call_site,
10 const void *ptr,
11 size_t bytes_req,
12 size_t bytes_alloc,
13 gfp_t gfp_flags),
14
15 TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags),
16
17 TP_STRUCT__entry(
18 __field( unsigned long, call_site )
19 __field( const void *, ptr )
20 __field( size_t, bytes_req )
21 __field( size_t, bytes_alloc )
22 __field( gfp_t, gfp_flags )
23 ),
24
25 TP_fast_assign(
26 tp_assign(call_site, call_site);
27 tp_assign(ptr, ptr);
28 tp_assign(bytes_req, bytes_req);
29 tp_assign(bytes_alloc, bytes_alloc);
30 tp_assign(gfp_flags, gfp_flags);
31 ),
32
33 TP_printk("call_site=%lx ptr=%p bytes_req=%zu bytes_alloc=%zu gfp_flags=%s",
34 __entry->call_site,
35 __entry->ptr,
36 __entry->bytes_req,
37 __entry->bytes_alloc,
38 show_gfp_flags(__entry->gfp_flags))
39 )
40
41 DEFINE_EVENT(kmem_alloc, kmalloc,
42
43 TP_PROTO(unsigned long call_site, const void *ptr,
44 size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags),
45
46 TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags)
47 )
48
49 DEFINE_EVENT(kmem_alloc, kmem_cache_alloc,
50
51 TP_PROTO(unsigned long call_site, const void *ptr,
52 size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags),
53
54 TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags)
55 )
56
57 DECLARE_EVENT_CLASS(kmem_alloc_node,
58
59 TP_PROTO(unsigned long call_site,
60 const void *ptr,
61 size_t bytes_req,
62 size_t bytes_alloc,
63 gfp_t gfp_flags,
64 int node),
65
66 TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node),
67
68 TP_STRUCT__entry(
69 __field( unsigned long, call_site )
70 __field( const void *, ptr )
71 __field( size_t, bytes_req )
72 __field( size_t, bytes_alloc )
73 __field( gfp_t, gfp_flags )
74 __field( int, node )
75 ),
76
77 TP_fast_assign(
78 tp_assign(call_site, call_site);
79 tp_assign(ptr, ptr);
80 tp_assign(bytes_req, bytes_req);
81 tp_assign(bytes_alloc, bytes_alloc);
82 tp_assign(gfp_flags, gfp_flags);
83 tp_assign(node, node);
84 ),
85
86 TP_printk("call_site=%lx ptr=%p bytes_req=%zu bytes_alloc=%zu gfp_flags=%s node=%d",
87 __entry->call_site,
88 __entry->ptr,
89 __entry->bytes_req,
90 __entry->bytes_alloc,
91 show_gfp_flags(__entry->gfp_flags),
92 __entry->node)
93 )
94
95 DEFINE_EVENT(kmem_alloc_node, kmalloc_node,
96
97 TP_PROTO(unsigned long call_site, const void *ptr,
98 size_t bytes_req, size_t bytes_alloc,
99 gfp_t gfp_flags, int node),
100
101 TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node)
102 )
103
104 DEFINE_EVENT(kmem_alloc_node, kmem_cache_alloc_node,
105
106 TP_PROTO(unsigned long call_site, const void *ptr,
107 size_t bytes_req, size_t bytes_alloc,
108 gfp_t gfp_flags, int node),
109
110 TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node)
111 )
112
113 DECLARE_EVENT_CLASS(kmem_free,
114
115 TP_PROTO(unsigned long call_site, const void *ptr),
116
117 TP_ARGS(call_site, ptr),
118
119 TP_STRUCT__entry(
120 __field( unsigned long, call_site )
121 __field( const void *, ptr )
122 ),
123
124 TP_fast_assign(
125 tp_assign(call_site, call_site);
126 tp_assign(ptr, ptr);
127 ),
128
129 TP_printk("call_site=%lx ptr=%p", __entry->call_site, __entry->ptr)
130 )
131
132 DEFINE_EVENT(kmem_free, kfree,
133
134 TP_PROTO(unsigned long call_site, const void *ptr),
135
136 TP_ARGS(call_site, ptr)
137 )
138
139 DEFINE_EVENT(kmem_free, kmem_cache_free,
140
141 TP_PROTO(unsigned long call_site, const void *ptr),
142
143 TP_ARGS(call_site, ptr)
144 )
145
146 TRACE_EVENT(mm_page_free_direct,
147
148 TP_PROTO(struct page *page, unsigned int order),
149
150 TP_ARGS(page, order),
151
152 TP_STRUCT__entry(
153 __field( struct page *, page )
154 __field( unsigned int, order )
155 ),
156
157 TP_fast_assign(
158 tp_assign(page, page);
159 tp_assign(order, order);
160 ),
161
162 TP_printk("page=%p pfn=%lu order=%d",
163 __entry->page,
164 page_to_pfn(__entry->page),
165 __entry->order)
166 )
167
168 TRACE_EVENT(mm_pagevec_free,
169
170 TP_PROTO(struct page *page, int cold),
171
172 TP_ARGS(page, cold),
173
174 TP_STRUCT__entry(
175 __field( struct page *, page )
176 __field( int, cold )
177 ),
178
179 TP_fast_assign(
180 tp_assign(page, page);
181 tp_assign(cold, cold);
182 ),
183
184 TP_printk("page=%p pfn=%lu order=0 cold=%d",
185 __entry->page,
186 page_to_pfn(__entry->page),
187 __entry->cold)
188 )
189
190 TRACE_EVENT(mm_page_alloc,
191
192 TP_PROTO(struct page *page, unsigned int order,
193 gfp_t gfp_flags, int migratetype),
194
195 TP_ARGS(page, order, gfp_flags, migratetype),
196
197 TP_STRUCT__entry(
198 __field( struct page *, page )
199 __field( unsigned int, order )
200 __field( gfp_t, gfp_flags )
201 __field( int, migratetype )
202 ),
203
204 TP_fast_assign(
205 tp_assign(page, page);
206 tp_assign(order, order);
207 tp_assign(gfp_flags, gfp_flags);
208 tp_assign(migratetype, migratetype);
209 ),
210
211 TP_printk("page=%p pfn=%lu order=%d migratetype=%d gfp_flags=%s",
212 __entry->page,
213 page_to_pfn(__entry->page),
214 __entry->order,
215 __entry->migratetype,
216 show_gfp_flags(__entry->gfp_flags))
217 )
218
219 DECLARE_EVENT_CLASS(mm_page,
220
221 TP_PROTO(struct page *page, unsigned int order, int migratetype),
222
223 TP_ARGS(page, order, migratetype),
224
225 TP_STRUCT__entry(
226 __field( struct page *, page )
227 __field( unsigned int, order )
228 __field( int, migratetype )
229 ),
230
231 TP_fast_assign(
232 tp_assign(page, page);
233 tp_assign(order, order);
234 tp_assign(migratetype, migratetype);
235 ),
236
237 TP_printk("page=%p pfn=%lu order=%u migratetype=%d percpu_refill=%d",
238 __entry->page,
239 page_to_pfn(__entry->page),
240 __entry->order,
241 __entry->migratetype,
242 __entry->order == 0)
243 )
244
245 DEFINE_EVENT(mm_page, mm_page_alloc_zone_locked,
246
247 TP_PROTO(struct page *page, unsigned int order, int migratetype),
248
249 TP_ARGS(page, order, migratetype)
250 )
251
252 DEFINE_EVENT_PRINT(mm_page, mm_page_pcpu_drain,
253
254 TP_PROTO(struct page *page, unsigned int order, int migratetype),
255
256 TP_ARGS(page, order, migratetype),
257
258 TP_printk("page=%p pfn=%lu order=%d migratetype=%d",
259 __entry->page, page_to_pfn(__entry->page),
260 __entry->order, __entry->migratetype)
261 )
262
263 TRACE_EVENT(mm_page_alloc_extfrag,
264
265 TP_PROTO(struct page *page,
266 int alloc_order, int fallback_order,
267 int alloc_migratetype, int fallback_migratetype),
268
269 TP_ARGS(page,
270 alloc_order, fallback_order,
271 alloc_migratetype, fallback_migratetype),
272
273 TP_STRUCT__entry(
274 __field( struct page *, page )
275 __field( int, alloc_order )
276 __field( int, fallback_order )
277 __field( int, alloc_migratetype )
278 __field( int, fallback_migratetype )
279 ),
280
281 TP_fast_assign(
282 tp_assign(page, page);
283 tp_assign(alloc_order, alloc_order);
284 tp_assign(fallback_order, fallback_order);
285 tp_assign(alloc_migratetype, alloc_migratetype);
286 tp_assign(fallback_migratetype, fallback_migratetype);
287 ),
288
289 TP_printk("page=%p pfn=%lu alloc_order=%d fallback_order=%d pageblock_order=%d alloc_migratetype=%d fallback_migratetype=%d fragmenting=%d change_ownership=%d",
290 __entry->page,
291 page_to_pfn(__entry->page),
292 __entry->alloc_order,
293 __entry->fallback_order,
294 pageblock_order,
295 __entry->alloc_migratetype,
296 __entry->fallback_migratetype,
297 __entry->fallback_order < pageblock_order,
298 __entry->alloc_migratetype == __entry->fallback_migratetype)
299 )
300
301 #endif /* _TRACE_KMEM_H */
302
303 /* This part must be outside protection */
304 #include "../../../probes/define_trace.h"
This page took 0.038919 seconds and 4 git commands to generate.