fix: adjust ranges for RHEL 8.2 and 8.3
[lttng-modules.git] / include / instrumentation / events / rpc.h
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 #undef TRACE_SYSTEM
3 #define TRACE_SYSTEM rpc
4
5 #if !defined(LTTNG_TRACE_RPC_H) || defined(TRACE_HEADER_MULTI_READ)
6 #define LTTNG_TRACE_RPC_H
7
8 #include <lttng/tracepoint-event.h>
9 #include <linux/sunrpc/sched.h>
10 #include <linux/sunrpc/clnt.h>
11
12 #ifndef ONCE_LTTNG_RPC_H
13 #define ONCE_LTTNG_RPC_H
14
15 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
16 static inline
17 int lttng_get_clid(const struct rpc_task *task)
18 {
19 struct rpc_clnt *tk_client;
20
21 tk_client = task->tk_client;
22 if (!tk_client)
23 return -1;
24 /*
25 * The cl_clid field is always initialized to positive signed
26 * integers. Negative signed integer values are treated as
27 * errors.
28 */
29 return (int) tk_client->cl_clid;
30 }
31 #endif /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0)) */
32
33 #endif /* ONCE_LTTNG_RPC_H */
34
35 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,0,0) || \
36 LTTNG_RHEL_KERNEL_RANGE(4,18,0,193,0,0, 4,19,0,0,0,0))
37 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status,
38
39 TP_PROTO(const struct rpc_task *task),
40
41 TP_ARGS(task),
42
43 TP_FIELDS(
44 ctf_integer(unsigned int, task_id, task->tk_pid)
45 ctf_integer(int, client_id, lttng_get_clid(task))
46 ctf_integer(int, status, task->tk_status)
47 )
48 )
49
50 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_call_status,
51 TP_PROTO(const struct rpc_task *task),
52
53 TP_ARGS(task)
54 )
55
56 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_bind_status,
57 TP_PROTO(const struct rpc_task *task),
58
59 TP_ARGS(task)
60 )
61 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
62 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status,
63
64 TP_PROTO(struct rpc_task *task),
65
66 TP_ARGS(task),
67
68 TP_FIELDS(
69 ctf_integer(unsigned int, task_id, task->tk_pid)
70 ctf_integer(int, client_id, lttng_get_clid(task))
71 ctf_integer(int, status, task->tk_status)
72 )
73 )
74
75 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_call_status,
76 TP_PROTO(struct rpc_task *task),
77
78 TP_ARGS(task)
79 )
80
81 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_bind_status,
82 TP_PROTO(struct rpc_task *task),
83
84 TP_ARGS(task)
85 )
86 #else
87 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status,
88
89 TP_PROTO(struct rpc_task *task),
90
91 TP_ARGS(task),
92
93 TP_FIELDS(
94 ctf_integer_hex(const struct rpc_task *, task, task)
95 ctf_integer_hex(const struct rpc_clnt *, clnt, task->tk_client)
96 ctf_integer(int, status, task->tk_status)
97 )
98 )
99
100 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_call_status,
101 TP_PROTO(struct rpc_task *task),
102
103 TP_ARGS(task)
104 )
105
106 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_bind_status,
107 TP_PROTO(struct rpc_task *task),
108
109 TP_ARGS(task)
110 )
111 #endif
112
113 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,0,0))
114 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_connect_status,
115 TP_PROTO(const struct rpc_task *task),
116
117 TP_ARGS(task)
118 )
119 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,17,0))
120 LTTNG_TRACEPOINT_EVENT(rpc_connect_status,
121 TP_PROTO(const struct rpc_task *task),
122
123 TP_ARGS(task),
124
125 TP_FIELDS(
126 ctf_integer(unsigned int, task_id, task->tk_pid)
127 ctf_integer(int, client_id, lttng_get_clid(task))
128 ctf_integer(int, status, task->tk_status)
129 )
130 )
131 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
132 LTTNG_TRACEPOINT_EVENT(rpc_connect_status,
133 TP_PROTO(struct rpc_task *task, int status),
134
135 TP_ARGS(task, status),
136
137 TP_FIELDS(
138 ctf_integer(unsigned int, task_id, task->tk_pid)
139 ctf_integer(int, client_id, lttng_get_clid(task))
140 ctf_integer(int, status, status)
141 )
142 )
143 #else
144 LTTNG_TRACEPOINT_EVENT(rpc_connect_status,
145 TP_PROTO(struct rpc_task *task, int status),
146
147 TP_ARGS(task, status),
148
149 TP_FIELDS(
150 ctf_integer_hex(const struct rpc_task *, task, task)
151 ctf_integer_hex(const struct rpc_clnt *, clnt, task->tk_client)
152 ctf_integer(int, status, status)
153 )
154 )
155 #endif
156
157 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,17,0))
158 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running,
159
160 TP_PROTO(const struct rpc_task *task, const void *action),
161
162 TP_ARGS(task, action),
163
164 TP_FIELDS(
165 ctf_integer(unsigned int, task_id, task->tk_pid)
166 ctf_integer(int, client_id, lttng_get_clid(task))
167 ctf_integer_hex(const void *, action, action)
168 ctf_integer(unsigned long, runstate, task->tk_runstate)
169 ctf_integer(int, status, task->tk_status)
170 ctf_integer(unsigned short, flags, task->tk_flags)
171 )
172 )
173
174 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_begin,
175
176 TP_PROTO(const struct rpc_task *task, const void *action),
177
178 TP_ARGS(task, action)
179 )
180
181 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_run_action,
182
183 TP_PROTO(const struct rpc_task *task, const void *action),
184
185 TP_ARGS(task, action)
186 )
187
188 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_complete,
189
190 TP_PROTO(const struct rpc_task *task, const void *action),
191
192 TP_ARGS(task, action)
193 )
194
195 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_queued,
196
197 TP_PROTO(const struct rpc_task *task, const struct rpc_wait_queue *q),
198
199 TP_ARGS(task, q),
200
201 TP_FIELDS(
202 ctf_integer(unsigned int, task_id, task->tk_pid)
203 ctf_integer(int, client_id, lttng_get_clid(task))
204 ctf_integer(unsigned long, timeout, task->tk_timeout)
205 ctf_integer(unsigned long, runstate, task->tk_runstate)
206 ctf_integer(int, status, task->tk_status)
207 ctf_integer(unsigned short, flags, task->tk_flags)
208 ctf_string(q_name, rpc_qname(q))
209 )
210 )
211
212 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_sleep,
213
214 TP_PROTO(const struct rpc_task *task, const struct rpc_wait_queue *q),
215
216 TP_ARGS(task, q)
217 )
218
219 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_wakeup,
220
221 TP_PROTO(const struct rpc_task *task, const struct rpc_wait_queue *q),
222
223 TP_ARGS(task, q)
224 )
225
226 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
227 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running,
228
229 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
230
231 TP_ARGS(clnt, task, action),
232
233 TP_FIELDS(
234 ctf_integer(unsigned int, task_id, task->tk_pid)
235 ctf_integer(int, client_id, lttng_get_clid(task))
236 ctf_integer_hex(const void *, action, action)
237 ctf_integer(unsigned long, runstate, task->tk_runstate)
238 ctf_integer(int, status, task->tk_status)
239 ctf_integer(unsigned short, flags, task->tk_flags)
240 )
241 )
242
243 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_begin,
244
245 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
246
247 TP_ARGS(clnt, task, action)
248 )
249
250 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_run_action,
251
252 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
253
254 TP_ARGS(clnt, task, action)
255 )
256
257 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_complete,
258
259 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
260
261 TP_ARGS(clnt, task, action)
262 )
263
264 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_queued,
265
266 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
267
268 TP_ARGS(clnt, task, q),
269
270 TP_FIELDS(
271 ctf_integer(unsigned int, task_id, task->tk_pid)
272 ctf_integer(int, client_id, lttng_get_clid(task))
273 ctf_integer(unsigned long, timeout, task->tk_timeout)
274 ctf_integer(unsigned long, runstate, task->tk_runstate)
275 ctf_integer(int, status, task->tk_status)
276 ctf_integer(unsigned short, flags, task->tk_flags)
277 ctf_string(q_name, rpc_qname(q))
278 )
279 )
280
281 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_sleep,
282
283 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
284
285 TP_ARGS(clnt, task, q)
286 )
287
288 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_wakeup,
289
290 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
291
292 TP_ARGS(clnt, task, q)
293 )
294
295 #else
296 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running,
297
298 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
299
300 TP_ARGS(clnt, task, action),
301
302 TP_FIELDS(
303 ctf_integer_hex(const struct rpc_clnt *, clnt, clnt)
304 ctf_integer_hex(const struct rpc_task *, task, task)
305 ctf_integer_hex(const void *, action, action)
306 ctf_integer(unsigned long, runstate, task->tk_runstate)
307 ctf_integer(int, status, task->tk_status)
308 ctf_integer(unsigned short, flags, task->tk_flags)
309 )
310 )
311
312 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_begin,
313
314 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
315
316 TP_ARGS(clnt, task, action)
317 )
318
319 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_run_action,
320
321 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
322
323 TP_ARGS(clnt, task, action)
324 )
325
326 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_complete,
327
328 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
329
330 TP_ARGS(clnt, task, action)
331 )
332
333 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_queued,
334
335 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
336
337 TP_ARGS(clnt, task, q),
338
339 TP_FIELDS(
340 ctf_integer_hex(const struct rpc_clnt *, clnt, clnt)
341 ctf_integer_hex(const struct rpc_task *, task, task)
342 ctf_integer(unsigned long, timeout, task->tk_timeout)
343 ctf_integer(unsigned long, runstate, task->tk_runstate)
344 ctf_integer(int, status, task->tk_status)
345 ctf_integer(unsigned short, flags, task->tk_flags)
346 ctf_string(q_name, rpc_qname(q))
347 )
348 )
349
350 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_sleep,
351
352 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
353
354 TP_ARGS(clnt, task, q)
355 )
356
357 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_wakeup,
358
359 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
360
361 TP_ARGS(clnt, task, q)
362 )
363 #endif
364
365 #endif /* LTTNG_TRACE_RPC_H */
366
367 #include <lttng/define_trace.h>
This page took 0.035712 seconds and 4 git commands to generate.