Commit | Line | Data |
---|---|---|
b7cdc182 | 1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
b283666f | 2 | #undef TRACE_SYSTEM |
9bbf98da | 3 | #define TRACE_SYSTEM mm_vmscan |
b283666f | 4 | |
9bbf98da MD |
5 | #if !defined(LTTNG_TRACE_MM_VMSCAN_H) || defined(TRACE_HEADER_MULTI_READ) |
6 | #define LTTNG_TRACE_MM_VMSCAN_H | |
b283666f | 7 | |
6ec43db8 | 8 | #include <probes/lttng-tracepoint-event.h> |
7c68b363 | 9 | #include <linux/types.h> |
7c68b363 AG |
10 | #include <linux/mm.h> |
11 | #include <linux/memcontrol.h> | |
7c68b363 AG |
12 | |
13 | #ifndef _TRACE_VMSCAN_DEF | |
14 | #define _TRACE_VMSCAN_DEF | |
15 | #define RECLAIM_WB_ANON 0x0001u | |
16 | #define RECLAIM_WB_FILE 0x0002u | |
17 | #define RECLAIM_WB_MIXED 0x0010u | |
18 | #define RECLAIM_WB_SYNC 0x0004u /* Unused, all reclaim async */ | |
19 | #define RECLAIM_WB_ASYNC 0x0008u | |
7c68b363 AG |
20 | #endif |
21 | ||
c119c53a MJ |
22 | #include <linux/mm_inline.h> |
23 | ||
24 | #define trace_reclaim_flags(file) ( \ | |
25 | (file ? RECLAIM_WB_FILE : RECLAIM_WB_ANON) | \ | |
26 | (RECLAIM_WB_ASYNC) \ | |
27 | ) | |
28 | ||
3bc29f0a | 29 | LTTNG_TRACEPOINT_EVENT(mm_vmscan_kswapd_sleep, |
b283666f PW |
30 | |
31 | TP_PROTO(int nid), | |
32 | ||
33 | TP_ARGS(nid), | |
34 | ||
f127e61e MD |
35 | TP_FIELDS( |
36 | ctf_integer(int, nid, nid) | |
37 | ) | |
b283666f PW |
38 | ) |
39 | ||
b2641821 MD |
40 | LTTNG_TRACEPOINT_EVENT(mm_vmscan_kswapd_wake, |
41 | ||
42 | TP_PROTO(int nid, int zid, int order), | |
43 | ||
44 | TP_ARGS(nid, zid, order), | |
45 | ||
46 | TP_FIELDS( | |
47 | ctf_integer(int, nid, nid) | |
48 | ctf_integer(int, zid, zid) | |
49 | ctf_integer(int, order, order) | |
50 | ) | |
51 | ) | |
52 | ||
95265e58 MJ |
53 | LTTNG_TRACEPOINT_EVENT(mm_vmscan_wakeup_kswapd, |
54 | ||
55 | TP_PROTO(int nid, int zid, int order, gfp_t gfp_flags), | |
56 | ||
57 | TP_ARGS(nid, zid, order, gfp_flags), | |
58 | ||
59 | TP_FIELDS( | |
60 | ctf_integer(int, nid, nid) | |
61 | ctf_integer(int, zid, zid) | |
62 | ctf_integer(int, order, order) | |
63 | ctf_integer(gfp_t, gfp_flags, gfp_flags) | |
64 | ) | |
65 | ) | |
36ac1139 MJ |
66 | |
67 | LTTNG_TRACEPOINT_EVENT_CLASS(mm_vmscan_direct_reclaim_begin_template, | |
68 | ||
69 | TP_PROTO(int order, gfp_t gfp_flags), | |
70 | ||
71 | TP_ARGS(order, gfp_flags), | |
72 | ||
73 | TP_FIELDS( | |
74 | ctf_integer(int, order, order) | |
75 | ctf_integer(gfp_t, gfp_flags, gfp_flags) | |
76 | ) | |
77 | ) | |
78 | ||
79 | LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_direct_reclaim_begin, | |
80 | ||
81 | TP_PROTO(int order, gfp_t gfp_flags), | |
82 | ||
83 | TP_ARGS(order, gfp_flags) | |
84 | ) | |
85 | ||
86 | LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_memcg_reclaim_begin, | |
87 | ||
88 | TP_PROTO(int order, gfp_t gfp_flags), | |
89 | ||
90 | TP_ARGS(order, gfp_flags) | |
91 | ) | |
92 | ||
93 | LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_memcg_softlimit_reclaim_begin, | |
94 | ||
95 | TP_PROTO(int order, gfp_t gfp_flags), | |
96 | ||
97 | TP_ARGS(order, gfp_flags) | |
98 | ) | |
99 | ||
3bc29f0a | 100 | LTTNG_TRACEPOINT_EVENT_CLASS(mm_vmscan_direct_reclaim_end_template, |
b283666f PW |
101 | |
102 | TP_PROTO(unsigned long nr_reclaimed), | |
103 | ||
104 | TP_ARGS(nr_reclaimed), | |
105 | ||
f127e61e MD |
106 | TP_FIELDS( |
107 | ctf_integer(unsigned long, nr_reclaimed, nr_reclaimed) | |
108 | ) | |
b283666f PW |
109 | ) |
110 | ||
3bc29f0a | 111 | LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_end_template, mm_vmscan_direct_reclaim_end, |
b283666f PW |
112 | |
113 | TP_PROTO(unsigned long nr_reclaimed), | |
114 | ||
115 | TP_ARGS(nr_reclaimed) | |
116 | ) | |
117 | ||
3bc29f0a | 118 | LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_end_template, mm_vmscan_memcg_reclaim_end, |
b283666f PW |
119 | |
120 | TP_PROTO(unsigned long nr_reclaimed), | |
121 | ||
122 | TP_ARGS(nr_reclaimed) | |
123 | ) | |
124 | ||
3bc29f0a | 125 | LTTNG_TRACEPOINT_EVENT_INSTANCE(mm_vmscan_direct_reclaim_end_template, mm_vmscan_memcg_softlimit_reclaim_end, |
b283666f PW |
126 | |
127 | TP_PROTO(unsigned long nr_reclaimed), | |
128 | ||
129 | TP_ARGS(nr_reclaimed) | |
130 | ) | |
131 | ||
9cf057fc MJ |
132 | LTTNG_TRACEPOINT_EVENT_MAP(mm_shrink_slab_start, |
133 | ||
134 | mm_vmscan_shrink_slab_start, | |
135 | ||
136 | TP_PROTO(struct shrinker *shr, struct shrink_control *sc, | |
137 | long nr_objects_to_shrink, unsigned long cache_items, | |
138 | unsigned long long delta, unsigned long total_scan, | |
139 | int priority), | |
140 | ||
141 | TP_ARGS(shr, sc, nr_objects_to_shrink, cache_items, delta, total_scan, | |
142 | priority), | |
143 | ||
144 | TP_FIELDS( | |
145 | ctf_integer_hex(struct shrinker *, shr, shr) | |
146 | ctf_integer_hex(void *, shrink, shr->scan_objects) | |
147 | ctf_integer(int, nid, sc->nid) | |
148 | ctf_integer(long, nr_objects_to_shrink, nr_objects_to_shrink) | |
149 | ctf_integer(gfp_t, gfp_flags, sc->gfp_mask) | |
150 | ctf_integer(unsigned long, cache_items, cache_items) | |
151 | ctf_integer(unsigned long long, delta, delta) | |
152 | ctf_integer(unsigned long, total_scan, total_scan) | |
153 | ctf_integer(int, priority, priority) | |
154 | ) | |
155 | ) | |
b283666f | 156 | |
9bbf98da MD |
157 | LTTNG_TRACEPOINT_EVENT_MAP(mm_shrink_slab_end, |
158 | ||
159 | mm_vmscan_shrink_slab_end, | |
160 | ||
5defe623 MD |
161 | TP_PROTO(struct shrinker *shr, int nid, int shrinker_retval, |
162 | long unused_scan_cnt, long new_scan_cnt, long total_scan), | |
163 | ||
164 | TP_ARGS(shr, nid, shrinker_retval, unused_scan_cnt, new_scan_cnt, | |
165 | total_scan), | |
166 | ||
f127e61e | 167 | TP_FIELDS( |
fa91fcac | 168 | ctf_integer_hex(struct shrinker *, shr, shr) |
f127e61e | 169 | ctf_integer(int, nid, nid) |
fa91fcac | 170 | ctf_integer_hex(void *, shrink, shr->scan_objects) |
f127e61e MD |
171 | ctf_integer(long, unused_scan, unused_scan_cnt) |
172 | ctf_integer(long, new_scan, new_scan_cnt) | |
173 | ctf_integer(int, retval, shrinker_retval) | |
174 | ctf_integer(long, total_scan, total_scan) | |
175 | ) | |
5defe623 | 176 | ) |
b283666f | 177 | |
75833a88 FD |
178 | LTTNG_TRACEPOINT_EVENT(mm_vmscan_lru_isolate, |
179 | ||
180 | TP_PROTO(int classzone_idx, | |
181 | int order, | |
182 | unsigned long nr_requested, | |
183 | unsigned long nr_scanned, | |
184 | unsigned long nr_skipped, | |
185 | unsigned long nr_taken, | |
186 | isolate_mode_t isolate_mode, | |
187 | int lru | |
188 | ), | |
b2641821 | 189 | |
75833a88 FD |
190 | TP_ARGS(classzone_idx, order, nr_requested, nr_scanned, nr_skipped, |
191 | nr_taken, isolate_mode, lru | |
192 | ), | |
193 | ||
194 | TP_FIELDS( | |
195 | ctf_integer(int, classzone_idx, classzone_idx) | |
196 | ctf_integer(int, order, order) | |
197 | ctf_integer(unsigned long, nr_requested, nr_requested) | |
198 | ctf_integer(unsigned long, nr_scanned, nr_scanned) | |
199 | ctf_integer(unsigned long, nr_skipped, nr_skipped) | |
200 | ctf_integer(unsigned long, nr_taken, nr_taken) | |
201 | ctf_integer(isolate_mode_t, isolate_mode, isolate_mode) | |
202 | ctf_integer(int, lru, lru) | |
203 | ) | |
204 | ) | |
b283666f | 205 | |
7a4ba588 MD |
206 | LTTNG_TRACEPOINT_EVENT(mm_vmscan_writepage, |
207 | ||
208 | TP_PROTO(struct page *page), | |
209 | ||
210 | TP_ARGS(page), | |
211 | ||
212 | TP_FIELDS( | |
213 | ctf_integer_hex(struct page *, page, page) | |
214 | ctf_integer(int, reclaim_flags, trace_reclaim_flags( | |
215 | page_is_file_lru(page))) | |
216 | ) | |
217 | ) | |
c119c53a | 218 | |
c119c53a MJ |
219 | LTTNG_TRACEPOINT_EVENT(mm_vmscan_lru_shrink_inactive, |
220 | ||
221 | TP_PROTO(int nid, | |
222 | unsigned long nr_scanned, unsigned long nr_reclaimed, | |
223 | struct reclaim_stat *stat, int priority, int file), | |
224 | ||
225 | TP_ARGS(nid, nr_scanned, nr_reclaimed, stat, priority, file), | |
226 | ||
227 | TP_FIELDS( | |
228 | ctf_integer(int, nid, nid) | |
229 | ctf_integer(unsigned long, nr_scanned, nr_scanned) | |
230 | ctf_integer(unsigned long, nr_reclaimed, nr_reclaimed) | |
231 | ctf_integer(unsigned long, nr_dirty, stat->nr_dirty) | |
232 | ctf_integer(unsigned long, nr_writeback, stat->nr_writeback) | |
233 | ctf_integer(unsigned long, nr_congested, stat->nr_congested) | |
234 | ctf_integer(unsigned long, nr_immediate, stat->nr_immediate) | |
f98bc8fb MJ |
235 | ctf_integer(unsigned long, nr_activate_anon, stat->nr_activate[0]) |
236 | ctf_integer(unsigned long, nr_activate_file, stat->nr_activate[1]) | |
c119c53a MJ |
237 | ctf_integer(unsigned long, nr_ref_keep, stat->nr_ref_keep) |
238 | ctf_integer(unsigned long, nr_unmap_fail, stat->nr_unmap_fail) | |
239 | ctf_integer(int, priority, priority) | |
240 | ctf_integer(int, reclaim_flags, trace_reclaim_flags(file)) | |
241 | ) | |
242 | ) | |
b283666f | 243 | |
9bbf98da | 244 | #endif /* LTTNG_TRACE_MM_VMSCAN_H */ |
b283666f PW |
245 | |
246 | /* This part must be outside protection */ | |
6ec43db8 | 247 | #include <probes/define_trace.h> |