1 /* SPDX-License-Identifier: GPL-2.0-only */
3 #define TRACE_SYSTEM compaction
5 #if !defined(LTTNG_TRACE_COMPACTION_H) || defined(TRACE_HEADER_MULTI_READ)
6 #define LTTNG_TRACE_COMPACTION_H
8 #include <lttng/lttng-tracepoint-event.h>
9 #include <linux/types.h>
11 LTTNG_TRACEPOINT_EVENT_CLASS(compaction_isolate_template
,
13 TP_PROTO(unsigned long start_pfn
,
14 unsigned long end_pfn
,
15 unsigned long nr_scanned
,
16 unsigned long nr_taken
),
18 TP_ARGS(start_pfn
, end_pfn
, nr_scanned
, nr_taken
),
21 ctf_integer(unsigned long, start_pfn
, start_pfn
)
22 ctf_integer(unsigned long, end_pfn
, end_pfn
)
23 ctf_integer(unsigned long, nr_scanned
, nr_scanned
)
24 ctf_integer(unsigned long, nr_taken
, nr_taken
)
28 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(compaction_isolate_template
,
30 mm_compaction_isolate_migratepages
,
32 compaction_isolate_migratepages
,
34 TP_PROTO(unsigned long start_pfn
,
35 unsigned long end_pfn
,
36 unsigned long nr_scanned
,
37 unsigned long nr_taken
),
39 TP_ARGS(start_pfn
, end_pfn
, nr_scanned
, nr_taken
)
42 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(compaction_isolate_template
,
44 mm_compaction_isolate_freepages
,
46 compaction_isolate_freepages
,
48 TP_PROTO(unsigned long start_pfn
,
49 unsigned long end_pfn
,
50 unsigned long nr_scanned
,
51 unsigned long nr_taken
),
53 TP_ARGS(start_pfn
, end_pfn
, nr_scanned
, nr_taken
)
56 LTTNG_TRACEPOINT_EVENT_CODE_MAP(mm_compaction_migratepages
,
58 compaction_migratepages
,
60 TP_PROTO(unsigned long nr_all
,
62 struct list_head
*migratepages
),
64 TP_ARGS(nr_all
, migrate_rc
, migratepages
),
67 unsigned long nr_failed
;
71 tp_locvar
->nr_failed
= 0;
74 struct list_head
*page_lru
;
77 tp_locvar
->nr_failed
= migrate_rc
;
79 list_for_each(page_lru
, migratepages
)
80 tp_locvar
->nr_failed
++;
85 ctf_integer(unsigned long, nr_migrated
, nr_all
- tp_locvar
->nr_failed
)
86 ctf_integer(unsigned long, nr_failed
, tp_locvar
->nr_failed
)
92 #endif /* LTTNG_TRACE_COMPACTION_H */
94 /* This part must be outside protection */
95 #include <lttng/define_trace.h>