fix: adjust ranges for RHEL 8.4
[lttng-modules.git] / instrumentation / events / lttng-module / mm_vmscan.h
... / ...
CommitLineData
1/* SPDX-License-Identifier: GPL-2.0 */
2#undef TRACE_SYSTEM
3#define TRACE_SYSTEM mm_vmscan
4
5#if !defined(LTTNG_TRACE_MM_VMSCAN_H) || defined(TRACE_HEADER_MULTI_READ)
6#define LTTNG_TRACE_MM_VMSCAN_H
7
8#include <probes/lttng-tracepoint-event.h>
9#include <linux/types.h>
10#include <linux/mm.h>
11#include <linux/memcontrol.h>
12#include <lttng-kernel-version.h>
13
14#ifndef _TRACE_VMSCAN_DEF
15#define _TRACE_VMSCAN_DEF
16#define RECLAIM_WB_ANON 0x0001u
17#define RECLAIM_WB_FILE 0x0002u
18#define RECLAIM_WB_MIXED 0x0010u
19#define RECLAIM_WB_SYNC 0x0004u /* Unused, all reclaim async */
20#define RECLAIM_WB_ASYNC 0x0008u
21
22#if ((LTTNG_LINUX_VERSION_CODE <= LTTNG_KERNEL_VERSION(3,0,38)) || \
23 LTTNG_KERNEL_RANGE(3,1,0, 3,2,0))
24typedef int isolate_mode_t;
25#endif
26
27#endif
28
29#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,2,0) || \
30 LTTNG_RHEL_KERNEL_RANGE(4,18,0,305,0,0, 4,19,0,0,0,0))
31
32#include <linux/mm_inline.h>
33
34#define trace_reclaim_flags(file) ( \
35 (file ? RECLAIM_WB_FILE : RECLAIM_WB_ANON) | \
36 (RECLAIM_WB_ASYNC) \
37 )
38
39#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,5,0))
40
41#include <linux/mm_inline.h>
42
43#define trace_reclaim_flags(page) ( \
44 (page_is_file_cache(page) ? RECLAIM_WB_FILE : RECLAIM_WB_ANON) | \
45 (RECLAIM_WB_ASYNC) \
46 )
47
48#define trace_shrink_flags(file) \
49 ( \
50 (file ? RECLAIM_WB_FILE : RECLAIM_WB_ANON) | \
51 (RECLAIM_WB_ASYNC) \
52 )
53
54#endif
55
56LTTNG_TRACEPOINT_EVENT(mm_vmscan_kswapd_sleep,
57
58 TP_PROTO(int nid),
59
60 TP_ARGS(nid),
61
62 TP_FIELDS(
63 ctf_integer(int, nid, nid)
64 )
65)
66
67#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,8,0))
68
69LTTNG_TRACEPOINT_EVENT(mm_vmscan_kswapd_wake,
70
71 TP_PROTO(int nid, int zid, int order),
72
73 TP_ARGS(nid, zid, order),
74
75 TP_FIELDS(
76 ctf_integer(int, nid, nid)
77 ctf_integer(int, zid, zid)
78 ctf_integer(int, order, order)
79 )
80)
81
82#else
83
84LTTNG_TRACEPOINT_EVENT(mm_vmscan_kswapd_wake,
85
86 TP_PROTO(int nid, int order),
87
88 TP_ARGS(nid, order),
89
90 TP_FIELDS(
91 ctf_integer(int, nid, nid)
92 ctf_integer(int, order, order)
93 )
94)
95
96#endif
97
98#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,17,0))
99LTTNG_TRACEPOINT_EVENT(mm_vmscan_wakeup_kswapd,
100
101 TP_PROTO(int nid, int zid, int order, gfp_t gfp_flags),
102
103 TP_ARGS(nid, zid, order, gfp_flags),
104
105 TP_FIELDS(
106 ctf_integer(int, nid, nid)
107 ctf_integer(int, zid, zid)
108 ctf_integer(int, order, order)
109 ctf_integer(gfp_t, gfp_flags, gfp_flags)
110 )
111)
112#else
113LTTNG_TRACEPOINT_EVENT(mm_vmscan_wakeup_kswapd,
114
115 TP_PROTO(int nid, int zid, int order),
116
117 TP_ARGS(nid, zid, order),
118
119 TP_FIELDS(
120 ctf_integer(int, nid, nid)
121 ctf_integer(int, zid, zid)
122 ctf_integer(int, order, order)
123 )
124)
125#endif
126
127#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,2,0) || \
128 LTTNG_RHEL_KERNEL_RANGE(4,18,0,305,0,0, 4,19,0,0,0,0))
129
130LTTNG_TRACEPOINT_EVENT_CLASS(mm_vmscan_direct_reclaim_begin_template,
131
132 TP_PROTO(int order, gfp_t gfp_flags),
133
134 TP_ARGS(order, gfp_flags),
135
136 TP_FIELDS(
137 ctf_integer(int, order, order)
138 ctf_integer(gfp_t, gfp_flags, gfp_flags)
139 )
140)
141
142LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_direct_reclaim_begin,
143
144 TP_PROTO(int order, gfp_t gfp_flags),
145
146 TP_ARGS(order, gfp_flags)
147)
148
149LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_memcg_reclaim_begin,
150
151 TP_PROTO(int order, gfp_t gfp_flags),
152
153 TP_ARGS(order, gfp_flags)
154)
155
156LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_memcg_softlimit_reclaim_begin,
157
158 TP_PROTO(int order, gfp_t gfp_flags),
159
160 TP_ARGS(order, gfp_flags)
161)
162
163#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,8,0))
164
165LTTNG_TRACEPOINT_EVENT_CLASS(mm_vmscan_direct_reclaim_begin_template,
166
167 TP_PROTO(int order, int may_writepage, gfp_t gfp_flags, int classzone_idx),
168
169 TP_ARGS(order, may_writepage, gfp_flags, classzone_idx),
170
171 TP_FIELDS(
172 ctf_integer(int, order, order)
173 ctf_integer(int, may_writepage, may_writepage)
174 ctf_integer(gfp_t, gfp_flags, gfp_flags)
175 ctf_integer(int, classzone_idx, classzone_idx)
176 )
177)
178
179LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_direct_reclaim_begin,
180
181 TP_PROTO(int order, int may_writepage, gfp_t gfp_flags, int classzone_idx),
182
183 TP_ARGS(order, may_writepage, gfp_flags, classzone_idx)
184)
185
186LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_memcg_reclaim_begin,
187
188 TP_PROTO(int order, int may_writepage, gfp_t gfp_flags, int classzone_idx),
189
190 TP_ARGS(order, may_writepage, gfp_flags, classzone_idx)
191)
192
193LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_memcg_softlimit_reclaim_begin,
194
195 TP_PROTO(int order, int may_writepage, gfp_t gfp_flags, int classzone_idx),
196
197 TP_ARGS(order, may_writepage, gfp_flags, classzone_idx)
198)
199
200#else
201
202LTTNG_TRACEPOINT_EVENT_CLASS(mm_vmscan_direct_reclaim_begin_template,
203
204 TP_PROTO(int order, int may_writepage, gfp_t gfp_flags),
205
206 TP_ARGS(order, may_writepage, gfp_flags),
207
208 TP_FIELDS(
209 ctf_integer(int, order, order)
210 ctf_integer(int, may_writepage, may_writepage)
211 ctf_integer(gfp_t, gfp_flags, gfp_flags)
212 )
213)
214
215LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_direct_reclaim_begin,
216
217 TP_PROTO(int order, int may_writepage, gfp_t gfp_flags),
218
219 TP_ARGS(order, may_writepage, gfp_flags)
220)
221
222LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_memcg_reclaim_begin,
223
224 TP_PROTO(int order, int may_writepage, gfp_t gfp_flags),
225
226 TP_ARGS(order, may_writepage, gfp_flags)
227)
228
229LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_memcg_softlimit_reclaim_begin,
230
231 TP_PROTO(int order, int may_writepage, gfp_t gfp_flags),
232
233 TP_ARGS(order, may_writepage, gfp_flags)
234)
235
236#endif
237
238LTTNG_TRACEPOINT_EVENT_CLASS(mm_vmscan_direct_reclaim_end_template,
239
240 TP_PROTO(unsigned long nr_reclaimed),
241
242 TP_ARGS(nr_reclaimed),
243
244 TP_FIELDS(
245 ctf_integer(unsigned long, nr_reclaimed, nr_reclaimed)
246 )
247)
248
249LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_end_template, mm_vmscan_direct_reclaim_end,
250
251 TP_PROTO(unsigned long nr_reclaimed),
252
253 TP_ARGS(nr_reclaimed)
254)
255
256LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_end_template, mm_vmscan_memcg_reclaim_end,
257
258 TP_PROTO(unsigned long nr_reclaimed),
259
260 TP_ARGS(nr_reclaimed)
261)
262
263LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_end_template, mm_vmscan_memcg_softlimit_reclaim_end,
264
265 TP_PROTO(unsigned long nr_reclaimed),
266
267 TP_ARGS(nr_reclaimed)
268)
269
270#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,16,0))
271LTTNG_TRACEPOINT_EVENT_MAP(mm_shrink_slab_start,
272
273 mm_vmscan_shrink_slab_start,
274
275 TP_PROTO(struct shrinker *shr, struct shrink_control *sc,
276 long nr_objects_to_shrink, unsigned long cache_items,
277 unsigned long long delta, unsigned long total_scan,
278 int priority),
279
280 TP_ARGS(shr, sc, nr_objects_to_shrink, cache_items, delta, total_scan,
281 priority),
282
283 TP_FIELDS(
284 ctf_integer_hex(struct shrinker *, shr, shr)
285 ctf_integer_hex(void *, shrink, shr->scan_objects)
286 ctf_integer(int, nid, sc->nid)
287 ctf_integer(long, nr_objects_to_shrink, nr_objects_to_shrink)
288 ctf_integer(gfp_t, gfp_flags, sc->gfp_mask)
289 ctf_integer(unsigned long, cache_items, cache_items)
290 ctf_integer(unsigned long long, delta, delta)
291 ctf_integer(unsigned long, total_scan, total_scan)
292 ctf_integer(int, priority, priority)
293 )
294)
295#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0))
296LTTNG_TRACEPOINT_EVENT_MAP(mm_shrink_slab_start,
297
298 mm_vmscan_shrink_slab_start,
299
300 TP_PROTO(struct shrinker *shr, struct shrink_control *sc,
301 long nr_objects_to_shrink, unsigned long pgs_scanned,
302 unsigned long lru_pgs, unsigned long cache_items,
303 unsigned long long delta, unsigned long total_scan),
304
305 TP_ARGS(shr, sc, nr_objects_to_shrink, pgs_scanned, lru_pgs,
306 cache_items, delta, total_scan),
307
308 TP_FIELDS(
309 ctf_integer_hex(struct shrinker *, shr, shr)
310#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
311 ctf_integer_hex(void *, shrink, shr->scan_objects)
312#else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0)) */
313 ctf_integer_hex(void *, shrink, shr->shrink)
314#endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0)) */
315 ctf_integer(long, nr_objects_to_shrink, nr_objects_to_shrink)
316 ctf_integer(gfp_t, gfp_flags, sc->gfp_mask)
317 ctf_integer(unsigned long, pgs_scanned, pgs_scanned)
318 ctf_integer(unsigned long, lru_pgs, lru_pgs)
319 ctf_integer(unsigned long, cache_items, cache_items)
320 ctf_integer(unsigned long long, delta, delta)
321 ctf_integer(unsigned long, total_scan, total_scan)
322 )
323)
324#endif
325
326#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,16,0))
327LTTNG_TRACEPOINT_EVENT_MAP(mm_shrink_slab_end,
328
329 mm_vmscan_shrink_slab_end,
330
331 TP_PROTO(struct shrinker *shr, int nid, int shrinker_retval,
332 long unused_scan_cnt, long new_scan_cnt, long total_scan),
333
334 TP_ARGS(shr, nid, shrinker_retval, unused_scan_cnt, new_scan_cnt,
335 total_scan),
336
337 TP_FIELDS(
338 ctf_integer_hex(struct shrinker *, shr, shr)
339 ctf_integer(int, nid, nid)
340 ctf_integer_hex(void *, shrink, shr->scan_objects)
341 ctf_integer(long, unused_scan, unused_scan_cnt)
342 ctf_integer(long, new_scan, new_scan_cnt)
343 ctf_integer(int, retval, shrinker_retval)
344 ctf_integer(long, total_scan, total_scan)
345 )
346)
347#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0))
348LTTNG_TRACEPOINT_EVENT_MAP(mm_shrink_slab_end,
349
350 mm_vmscan_shrink_slab_end,
351
352 TP_PROTO(struct shrinker *shr, int shrinker_retval,
353 long unused_scan_cnt, long new_scan_cnt),
354
355 TP_ARGS(shr, shrinker_retval, unused_scan_cnt, new_scan_cnt),
356
357 TP_FIELDS(
358 ctf_integer_hex(struct shrinker *, shr, shr)
359#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
360 ctf_integer_hex(void *, shrink, shr->scan_objects)
361#else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0)) */
362 ctf_integer_hex(void *, shrink, shr->shrink)
363#endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0)) */
364 ctf_integer(long, unused_scan, unused_scan_cnt)
365 ctf_integer(long, new_scan, new_scan_cnt)
366 ctf_integer(int, retval, shrinker_retval)
367 ctf_integer(long, total_scan, new_scan_cnt - unused_scan_cnt)
368 )
369)
370#endif
371
372#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0))
373LTTNG_TRACEPOINT_EVENT(mm_vmscan_lru_isolate,
374
375 TP_PROTO(int classzone_idx,
376 int order,
377 unsigned long nr_requested,
378 unsigned long nr_scanned,
379 unsigned long nr_skipped,
380 unsigned long nr_taken,
381 isolate_mode_t isolate_mode,
382 int lru
383 ),
384
385 TP_ARGS(classzone_idx, order, nr_requested, nr_scanned, nr_skipped,
386 nr_taken, isolate_mode, lru
387 ),
388
389 TP_FIELDS(
390 ctf_integer(int, classzone_idx, classzone_idx)
391 ctf_integer(int, order, order)
392 ctf_integer(unsigned long, nr_requested, nr_requested)
393 ctf_integer(unsigned long, nr_scanned, nr_scanned)
394 ctf_integer(unsigned long, nr_skipped, nr_skipped)
395 ctf_integer(unsigned long, nr_taken, nr_taken)
396 ctf_integer(isolate_mode_t, isolate_mode, isolate_mode)
397 ctf_integer(int, lru, lru)
398 )
399)
400#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,8,0))
401LTTNG_TRACEPOINT_EVENT_CLASS(mm_vmscan_lru_isolate_template,
402
403 TP_PROTO(int classzone_idx,
404 int order,
405 unsigned long nr_requested,
406 unsigned long nr_scanned,
407 unsigned long nr_taken,
408 isolate_mode_t isolate_mode,
409 int file
410 ),
411
412 TP_ARGS(classzone_idx, order, nr_requested, nr_scanned, nr_taken,
413 isolate_mode, file
414 ),
415
416
417 TP_FIELDS(
418 ctf_integer(int, classzone_idx, classzone_idx)
419 ctf_integer(int, order, order)
420 ctf_integer(unsigned long, nr_requested, nr_requested)
421 ctf_integer(unsigned long, nr_scanned, nr_scanned)
422 ctf_integer(unsigned long, nr_taken, nr_taken)
423 ctf_integer(isolate_mode_t, isolate_mode, isolate_mode)
424 ctf_integer(int, file, file)
425 )
426)
427
428LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_lru_isolate_template, mm_vmscan_lru_isolate,
429
430 TP_PROTO(int classzone_idx,
431 int order,
432 unsigned long nr_requested,
433 unsigned long nr_scanned,
434 unsigned long nr_taken,
435 isolate_mode_t isolate_mode,
436 int file
437 ),
438
439 TP_ARGS(classzone_idx, order, nr_requested, nr_scanned, nr_taken,
440 isolate_mode, file
441 )
442
443)
444
445LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_lru_isolate_template, mm_vmscan_memcg_isolate,
446
447 TP_PROTO(int classzone_idx,
448 int order,
449 unsigned long nr_requested,
450 unsigned long nr_scanned,
451 unsigned long nr_taken,
452 isolate_mode_t isolate_mode,
453 int file
454 ),
455
456 TP_ARGS(classzone_idx, order, nr_requested, nr_scanned, nr_taken,
457 isolate_mode, file
458 )
459)
460#else
461LTTNG_TRACEPOINT_EVENT_CLASS(mm_vmscan_lru_isolate_template,
462
463 TP_PROTO(int order,
464 unsigned long nr_requested,
465 unsigned long nr_scanned,
466 unsigned long nr_taken,
467#if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,5,0))
468 unsigned long nr_lumpy_taken,
469 unsigned long nr_lumpy_dirty,
470 unsigned long nr_lumpy_failed,
471#endif
472#if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,3,0))
473 isolate_mode_t isolate_mode
474#else
475 isolate_mode_t isolate_mode,
476 int file
477#endif
478 ),
479
480 TP_ARGS(order, nr_requested, nr_scanned, nr_taken,
481#if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,5,0))
482 nr_lumpy_taken, nr_lumpy_dirty, nr_lumpy_failed,
483#endif
484#if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,3,0))
485 isolate_mode
486#else
487 isolate_mode, file
488#endif
489 ),
490
491
492 TP_FIELDS(
493 ctf_integer(int, order, order)
494 ctf_integer(unsigned long, nr_requested, nr_requested)
495 ctf_integer(unsigned long, nr_scanned, nr_scanned)
496 ctf_integer(unsigned long, nr_taken, nr_taken)
497#if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,5,0))
498 ctf_integer(unsigned long, nr_lumpy_taken, nr_lumpy_taken)
499 ctf_integer(unsigned long, nr_lumpy_dirty, nr_lumpy_dirty)
500 ctf_integer(unsigned long, nr_lumpy_failed, nr_lumpy_failed)
501#endif
502 ctf_integer(isolate_mode_t, isolate_mode, isolate_mode)
503#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,3,0))
504 ctf_integer(int, file, file)
505#endif
506 )
507)
508
509LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_lru_isolate_template, mm_vmscan_lru_isolate,
510
511 TP_PROTO(int order,
512 unsigned long nr_requested,
513 unsigned long nr_scanned,
514 unsigned long nr_taken,
515#if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,5,0))
516 unsigned long nr_lumpy_taken,
517 unsigned long nr_lumpy_dirty,
518 unsigned long nr_lumpy_failed,
519#endif
520#if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,3,0))
521 isolate_mode_t isolate_mode
522#else
523 isolate_mode_t isolate_mode,
524 int file
525#endif
526 ),
527
528 TP_ARGS(order, nr_requested, nr_scanned, nr_taken,
529#if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,5,0))
530 nr_lumpy_taken, nr_lumpy_dirty, nr_lumpy_failed,
531#endif
532#if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,3,0))
533 isolate_mode
534#else
535 isolate_mode, file
536#endif
537 )
538
539)
540
541LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_lru_isolate_template, mm_vmscan_memcg_isolate,
542
543 TP_PROTO(int order,
544 unsigned long nr_requested,
545 unsigned long nr_scanned,
546 unsigned long nr_taken,
547#if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,5,0))
548 unsigned long nr_lumpy_taken,
549 unsigned long nr_lumpy_dirty,
550 unsigned long nr_lumpy_failed,
551#endif
552#if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,3,0))
553 isolate_mode_t isolate_mode
554#else
555 isolate_mode_t isolate_mode,
556 int file
557#endif
558 ),
559
560 TP_ARGS(order, nr_requested, nr_scanned, nr_taken,
561#if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,5,0))
562 nr_lumpy_taken, nr_lumpy_dirty, nr_lumpy_failed,
563#endif
564#if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,3,0))
565 isolate_mode
566#else
567 isolate_mode, file
568#endif
569 )
570)
571#endif
572
573#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,7,0))
574LTTNG_TRACEPOINT_EVENT(mm_vmscan_writepage,
575
576 TP_PROTO(struct page *page),
577
578 TP_ARGS(page),
579
580 TP_FIELDS(
581 ctf_integer_hex(struct page *, page, page)
582 ctf_integer(int, reclaim_flags, trace_reclaim_flags(
583 page_is_file_lru(page)))
584 )
585)
586#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,2,0))
587LTTNG_TRACEPOINT_EVENT(mm_vmscan_writepage,
588
589 TP_PROTO(struct page *page),
590
591 TP_ARGS(page),
592
593 TP_FIELDS(
594 ctf_integer_hex(struct page *, page, page)
595 ctf_integer(int, reclaim_flags, trace_reclaim_flags(
596 page_is_file_cache(page)))
597 )
598)
599#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,5,0))
600LTTNG_TRACEPOINT_EVENT(mm_vmscan_writepage,
601
602 TP_PROTO(struct page *page),
603
604 TP_ARGS(page),
605
606 TP_FIELDS(
607 ctf_integer_hex(struct page *, page, page)
608 ctf_integer(int, reclaim_flags, trace_reclaim_flags(page))
609 )
610)
611#else
612LTTNG_TRACEPOINT_EVENT(mm_vmscan_writepage,
613
614 TP_PROTO(struct page *page,
615 int reclaim_flags),
616
617 TP_ARGS(page, reclaim_flags),
618
619 TP_FIELDS(
620 ctf_integer_hex(struct page *, page, page)
621 ctf_integer(int, reclaim_flags, reclaim_flags)
622 )
623)
624#endif
625
626#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,2,0) || \
627 LTTNG_RHEL_KERNEL_RANGE(4,18,0,305,0,0, 4,19,0,0,0,0))
628LTTNG_TRACEPOINT_EVENT(mm_vmscan_lru_shrink_inactive,
629
630 TP_PROTO(int nid,
631 unsigned long nr_scanned, unsigned long nr_reclaimed,
632 struct reclaim_stat *stat, int priority, int file),
633
634 TP_ARGS(nid, nr_scanned, nr_reclaimed, stat, priority, file),
635
636 TP_FIELDS(
637 ctf_integer(int, nid, nid)
638 ctf_integer(unsigned long, nr_scanned, nr_scanned)
639 ctf_integer(unsigned long, nr_reclaimed, nr_reclaimed)
640 ctf_integer(unsigned long, nr_dirty, stat->nr_dirty)
641 ctf_integer(unsigned long, nr_writeback, stat->nr_writeback)
642 ctf_integer(unsigned long, nr_congested, stat->nr_congested)
643 ctf_integer(unsigned long, nr_immediate, stat->nr_immediate)
644 ctf_integer(unsigned long, nr_activate_anon, stat->nr_activate[0])
645 ctf_integer(unsigned long, nr_activate_file, stat->nr_activate[1])
646 ctf_integer(unsigned long, nr_ref_keep, stat->nr_ref_keep)
647 ctf_integer(unsigned long, nr_unmap_fail, stat->nr_unmap_fail)
648 ctf_integer(int, priority, priority)
649 ctf_integer(int, reclaim_flags, trace_reclaim_flags(file))
650 )
651)
652#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,17,0))
653LTTNG_TRACEPOINT_EVENT(mm_vmscan_lru_shrink_inactive,
654
655 TP_PROTO(int nid,
656 unsigned long nr_scanned, unsigned long nr_reclaimed,
657 struct reclaim_stat *stat, int priority, int file),
658
659 TP_ARGS(nid, nr_scanned, nr_reclaimed, stat, priority, file),
660
661 TP_FIELDS(
662 ctf_integer(int, nid, nid)
663 ctf_integer(unsigned long, nr_scanned, nr_scanned)
664 ctf_integer(unsigned long, nr_reclaimed, nr_reclaimed)
665 ctf_integer(unsigned long, nr_dirty, stat->nr_dirty)
666 ctf_integer(unsigned long, nr_writeback, stat->nr_writeback)
667 ctf_integer(unsigned long, nr_congested, stat->nr_congested)
668 ctf_integer(unsigned long, nr_immediate, stat->nr_immediate)
669 ctf_integer(unsigned long, nr_activate, stat->nr_activate)
670 ctf_integer(unsigned long, nr_ref_keep, stat->nr_ref_keep)
671 ctf_integer(unsigned long, nr_unmap_fail, stat->nr_unmap_fail)
672 ctf_integer(int, priority, priority)
673 ctf_integer(int, reclaim_flags, trace_shrink_flags(file))
674 )
675)
676#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0))
677LTTNG_TRACEPOINT_EVENT(mm_vmscan_lru_shrink_inactive,
678
679 TP_PROTO(int nid,
680 unsigned long nr_scanned, unsigned long nr_reclaimed,
681 unsigned long nr_dirty, unsigned long nr_writeback,
682 unsigned long nr_congested, unsigned long nr_immediate,
683 unsigned long nr_activate, unsigned long nr_ref_keep,
684 unsigned long nr_unmap_fail,
685 int priority, int file),
686
687 TP_ARGS(nid, nr_scanned, nr_reclaimed, nr_dirty, nr_writeback,
688 nr_congested, nr_immediate, nr_activate, nr_ref_keep,
689 nr_unmap_fail, priority, file),
690
691 TP_FIELDS(
692 ctf_integer(int, nid, nid)
693 ctf_integer(unsigned long, nr_scanned, nr_scanned)
694 ctf_integer(unsigned long, nr_reclaimed, nr_reclaimed)
695 ctf_integer(unsigned long, nr_dirty, nr_dirty)
696 ctf_integer(unsigned long, nr_writeback, nr_writeback)
697 ctf_integer(unsigned long, nr_congested, nr_congested)
698 ctf_integer(unsigned long, nr_immediate, nr_immediate)
699 ctf_integer(unsigned long, nr_activate, nr_activate)
700 ctf_integer(unsigned long, nr_ref_keep, nr_ref_keep)
701 ctf_integer(unsigned long, nr_unmap_fail, nr_unmap_fail)
702 ctf_integer(int, priority, priority)
703 ctf_integer(int, reclaim_flags, trace_shrink_flags(file))
704 )
705)
706#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,8,0))
707LTTNG_TRACEPOINT_EVENT(mm_vmscan_lru_shrink_inactive,
708
709 TP_PROTO(int nid,
710 unsigned long nr_scanned, unsigned long nr_reclaimed,
711 int priority, int file),
712
713 TP_ARGS(nid, nr_scanned, nr_reclaimed, priority, file),
714
715 TP_FIELDS(
716 ctf_integer(int, nid, nid)
717 ctf_integer(unsigned long, nr_scanned, nr_scanned)
718 ctf_integer(unsigned long, nr_reclaimed, nr_reclaimed)
719 ctf_integer(int, priority, priority)
720 ctf_integer(int, reclaim_flags, trace_shrink_flags(file))
721 )
722)
723#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,5,0))
724LTTNG_TRACEPOINT_EVENT(mm_vmscan_lru_shrink_inactive,
725
726 TP_PROTO(struct zone *zone,
727 unsigned long nr_scanned, unsigned long nr_reclaimed,
728 int priority, int file),
729
730 TP_ARGS(zone, nr_scanned, nr_reclaimed, priority, file),
731
732 TP_FIELDS(
733 ctf_integer(int, nid, zone_to_nid(zone))
734 ctf_integer(int, zid, zone_idx(zone))
735 ctf_integer(unsigned long, nr_scanned, nr_scanned)
736 ctf_integer(unsigned long, nr_reclaimed, nr_reclaimed)
737 ctf_integer(int, priority, priority)
738 ctf_integer(int, reclaim_flags, trace_shrink_flags(file))
739 )
740)
741#else
742LTTNG_TRACEPOINT_EVENT(mm_vmscan_lru_shrink_inactive,
743
744 TP_PROTO(int nid, int zid,
745 unsigned long nr_scanned, unsigned long nr_reclaimed,
746 int priority, int reclaim_flags),
747
748 TP_ARGS(nid, zid, nr_scanned, nr_reclaimed, priority, reclaim_flags),
749
750 TP_FIELDS(
751 ctf_integer(int, nid, nid)
752 ctf_integer(int, zid, zid)
753 ctf_integer(unsigned long, nr_scanned, nr_scanned)
754 ctf_integer(unsigned long, nr_reclaimed, nr_reclaimed)
755 ctf_integer(int, priority, priority)
756 ctf_integer(int, reclaim_flags, reclaim_flags)
757 )
758)
759#endif
760
761#if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,5,0))
762LTTNG_TRACEPOINT_EVENT_MAP(replace_swap_token,
763
764 mm_vmscan_replace_swap_token,
765
766 TP_PROTO(struct mm_struct *old_mm,
767 struct mm_struct *new_mm),
768
769 TP_ARGS(old_mm, new_mm),
770
771 TP_FIELDS(
772 ctf_integer_hex(struct mm_struct *, old_mm, old_mm)
773 ctf_integer(unsigned int, old_prio, old_mm ? old_mm->token_priority : 0)
774 ctf_integer_hex(struct mm_struct *, new_mm, new_mm)
775 ctf_integer(unsigned int, new_prio, new_mm->token_priority)
776 )
777)
778
779LTTNG_TRACEPOINT_EVENT_CLASS(mm_vmscan_put_swap_token_template,
780 TP_PROTO(struct mm_struct *swap_token_mm),
781
782 TP_ARGS(swap_token_mm),
783
784 TP_FIELDS(
785 ctf_integer_hex(struct mm_struct*, swap_token_mm, swap_token_mm)
786 )
787)
788
789LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(mm_vmscan_put_swap_token_template, put_swap_token,
790
791 mm_vmscan_put_swap_token,
792
793 TP_PROTO(struct mm_struct *swap_token_mm),
794 TP_ARGS(swap_token_mm)
795)
796
797LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(mm_vmscan_put_swap_token_template, disable_swap_token,
798
799 mm_vmscan_disable_swap_token,
800
801 TP_PROTO(struct mm_struct *swap_token_mm),
802 TP_ARGS(swap_token_mm)
803)
804
805LTTNG_TRACEPOINT_EVENT_MAP(update_swap_token_priority,
806
807 mm_vmscan_update_swap_token_priority,
808
809 TP_PROTO(struct mm_struct *mm,
810 unsigned int old_prio,
811 struct mm_struct *swap_token_mm),
812
813 TP_ARGS(mm, old_prio, swap_token_mm),
814
815 TP_FIELDS(
816 ctf_integer_hex(struct mm_struct *, mm, mm)
817 ctf_integer(unsigned int, old_prio, old_prio)
818 ctf_integer(unsigned int, new_prio, mm->token_priority)
819 ctf_integer_hex(struct mm_struct *, swap_token_mm, swap_token_mm)
820 ctf_integer(unsigned int, swap_token_prio, swap_token_mm ? swap_token_mm->token_priority : 0)
821 )
822)
823#endif
824
825#endif /* LTTNG_TRACE_MM_VMSCAN_H */
826
827/* This part must be outside protection */
828#include <probes/define_trace.h>
This page took 0.027455 seconds and 4 git commands to generate.