ee23aa991b5205feb1b9895e5a0abe41013a7cdd
[lttng-modules.git] / instrumentation / events / lttng-module / compaction.h
1 #undef TRACE_SYSTEM
2 #define TRACE_SYSTEM compaction
3
4 #if !defined(LTTNG_TRACE_COMPACTION_H) || defined(TRACE_HEADER_MULTI_READ)
5 #define LTTNG_TRACE_COMPACTION_H
6
7 #include "../../../probes/lttng-tracepoint-event.h"
8 #include <linux/types.h>
9 #include <linux/version.h>
10 #include <trace/events/gfpflags.h>
11
12 LTTNG_TRACEPOINT_EVENT_CLASS(mm_compaction_isolate_template,
13
14 TP_PROTO(unsigned long nr_scanned,
15 unsigned long nr_taken),
16
17 TP_ARGS(nr_scanned, nr_taken),
18
19 TP_STRUCT__entry(
20 __field(unsigned long, nr_scanned)
21 __field(unsigned long, nr_taken)
22 ),
23
24 TP_fast_assign(
25 tp_assign(nr_scanned, nr_scanned)
26 tp_assign(nr_taken, nr_taken)
27 ),
28
29 TP_printk("nr_scanned=%lu nr_taken=%lu",
30 __entry->nr_scanned,
31 __entry->nr_taken)
32 )
33
34 LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_compaction_isolate_template, mm_compaction_isolate_migratepages,
35
36 TP_PROTO(unsigned long nr_scanned,
37 unsigned long nr_taken),
38
39 TP_ARGS(nr_scanned, nr_taken)
40 )
41
42 LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_compaction_isolate_template, mm_compaction_isolate_freepages,
43 TP_PROTO(unsigned long nr_scanned,
44 unsigned long nr_taken),
45
46 TP_ARGS(nr_scanned, nr_taken)
47 )
48
49 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0))
50 LTTNG_TRACEPOINT_EVENT(mm_compaction_migratepages,
51
52 TP_PROTO(unsigned long nr_all,
53 int migrate_rc,
54 struct list_head *migratepages),
55
56 TP_ARGS(nr_all, migrate_rc, migratepages),
57
58 TP_STRUCT__entry(
59 __field(unsigned long, nr_migrated)
60 __field(unsigned long, nr_failed)
61 ),
62
63 TP_fast_assign(
64 tp_assign(nr_migrated,
65 nr_all -
66 (migrate_rc >= 0 ? migrate_rc :
67 ({
68 unsigned long nr_failed = 0;
69 struct list_head *page_lru;
70
71 list_for_each(page_lru, migratepages)
72 nr_failed++;
73 nr_failed;
74 })))
75 tp_assign(nr_failed,
76 ({
77 unsigned long nr_failed = 0;
78 struct list_head *page_lru;
79
80 list_for_each(page_lru, migratepages)
81 nr_failed++;
82 nr_failed;
83 }))
84 ),
85
86 TP_printk("nr_migrated=%lu nr_failed=%lu",
87 __entry->nr_migrated,
88 __entry->nr_failed)
89 )
90 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0)) */
91 LTTNG_TRACEPOINT_EVENT(mm_compaction_migratepages,
92
93 TP_PROTO(unsigned long nr_migrated,
94 unsigned long nr_failed),
95
96 TP_ARGS(nr_migrated, nr_failed),
97
98 TP_STRUCT__entry(
99 __field(unsigned long, nr_migrated)
100 __field(unsigned long, nr_failed)
101 ),
102
103 TP_fast_assign(
104 tp_assign(nr_migrated, nr_migrated)
105 tp_assign(nr_failed, nr_failed)
106 ),
107
108 TP_printk("nr_migrated=%lu nr_failed=%lu",
109 __entry->nr_migrated,
110 __entry->nr_failed)
111 )
112 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0)) */
113
114 #endif /* LTTNG_TRACE_COMPACTION_H */
115
116 /* This part must be outside protection */
117 #include "../../../probes/define_trace.h"
This page took 0.031254 seconds and 3 git commands to generate.