fix: adjust ranges for RHEL 8.2 and 8.3
[lttng-modules.git] / include / instrumentation / events / rpc.h
CommitLineData
b7cdc182 1/* SPDX-License-Identifier: GPL-2.0-only */
b87700e3 2#undef TRACE_SYSTEM
9bbf98da 3#define TRACE_SYSTEM rpc
b87700e3 4
9bbf98da
MD
5#if !defined(LTTNG_TRACE_RPC_H) || defined(TRACE_HEADER_MULTI_READ)
6#define LTTNG_TRACE_RPC_H
b87700e3 7
3b4aafcb 8#include <lttng/tracepoint-event.h>
b87700e3
AG
9#include <linux/sunrpc/sched.h>
10#include <linux/sunrpc/clnt.h>
b87700e3 11
b6903d57
MD
12#ifndef ONCE_LTTNG_RPC_H
13#define ONCE_LTTNG_RPC_H
14
5f4c791e 15#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
b6903d57
MD
16static inline
17int 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}
5f4c791e 31#endif /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0)) */
b6903d57
MD
32
33#endif /* ONCE_LTTNG_RPC_H */
34
05355f0b
MJ
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))
28fef30f
MJ
37LTTNG_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)
b6903d57 45 ctf_integer(int, client_id, lttng_get_clid(task))
28fef30f
MJ
46 ctf_integer(int, status, task->tk_status)
47 )
48)
49
50LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_call_status,
51 TP_PROTO(const struct rpc_task *task),
52
53 TP_ARGS(task)
54)
55
56LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_bind_status,
57 TP_PROTO(const struct rpc_task *task),
58
59 TP_ARGS(task)
60)
5f4c791e 61#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
b9dbdfe2
MJ
62LTTNG_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)
b6903d57 70 ctf_integer(int, client_id, lttng_get_clid(task))
b9dbdfe2
MJ
71 ctf_integer(int, status, task->tk_status)
72 )
73)
28fef30f
MJ
74
75LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_call_status,
76 TP_PROTO(struct rpc_task *task),
77
78 TP_ARGS(task)
79)
80
81LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_bind_status,
82 TP_PROTO(struct rpc_task *task),
83
84 TP_ARGS(task)
85)
b9dbdfe2 86#else
3bc29f0a 87LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status,
b87700e3
AG
88
89 TP_PROTO(struct rpc_task *task),
90
91 TP_ARGS(task),
92
f127e61e 93 TP_FIELDS(
fa91fcac
MD
94 ctf_integer_hex(const struct rpc_task *, task, task)
95 ctf_integer_hex(const struct rpc_clnt *, clnt, task->tk_client)
f127e61e
MD
96 ctf_integer(int, status, task->tk_status)
97 )
b87700e3
AG
98)
99
3bc29f0a 100LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_call_status,
b87700e3
AG
101 TP_PROTO(struct rpc_task *task),
102
103 TP_ARGS(task)
104)
105
3bc29f0a 106LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_bind_status,
b87700e3
AG
107 TP_PROTO(struct rpc_task *task),
108
109 TP_ARGS(task)
110)
28fef30f 111#endif
b87700e3 112
5f4c791e 113#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,0,0))
28fef30f
MJ
114LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_connect_status,
115 TP_PROTO(const struct rpc_task *task),
116
117 TP_ARGS(task)
118)
5f4c791e 119#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,17,0))
0f891764
MJ
120LTTNG_TRACEPOINT_EVENT(rpc_connect_status,
121 TP_PROTO(const struct rpc_task *task),
122
123 TP_ARGS(task),
124
125 TP_FIELDS(
b9dbdfe2 126 ctf_integer(unsigned int, task_id, task->tk_pid)
b6903d57 127 ctf_integer(int, client_id, lttng_get_clid(task))
0f891764
MJ
128 ctf_integer(int, status, task->tk_status)
129 )
130)
5f4c791e 131#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
28fef30f
MJ
132LTTNG_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)
b6903d57 139 ctf_integer(int, client_id, lttng_get_clid(task))
28fef30f
MJ
140 ctf_integer(int, status, status)
141 )
142)
143#else
144LTTNG_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
0f891764 156
5f4c791e 157#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,17,0))
0f891764
MJ
158LTTNG_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(
b9dbdfe2 165 ctf_integer(unsigned int, task_id, task->tk_pid)
b6903d57 166 ctf_integer(int, client_id, lttng_get_clid(task))
0f891764
MJ
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
174LTTNG_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
181LTTNG_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
188LTTNG_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
195LTTNG_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(
b9dbdfe2 202 ctf_integer(unsigned int, task_id, task->tk_pid)
b6903d57 203 ctf_integer(int, client_id, lttng_get_clid(task))
0f891764
MJ
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
212LTTNG_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
219LTTNG_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
5f4c791e 226#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
b9dbdfe2
MJ
227LTTNG_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)
b6903d57 235 ctf_integer(int, client_id, lttng_get_clid(task))
b9dbdfe2
MJ
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
243LTTNG_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
250LTTNG_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
257LTTNG_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
264LTTNG_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)
b6903d57 272 ctf_integer(int, client_id, lttng_get_clid(task))
b9dbdfe2
MJ
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
281LTTNG_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
288LTTNG_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
0f891764 295#else
3bc29f0a 296LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running,
b87700e3
AG
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
f127e61e 302 TP_FIELDS(
fa91fcac
MD
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)
f127e61e
MD
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 )
b87700e3
AG
310)
311
3bc29f0a 312LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_begin,
b87700e3
AG
313
314 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
315
316 TP_ARGS(clnt, task, action)
b87700e3
AG
317)
318
3bc29f0a 319LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_run_action,
b87700e3
AG
320
321 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
322
323 TP_ARGS(clnt, task, action)
b87700e3
AG
324)
325
3bc29f0a 326LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_complete,
b87700e3
AG
327
328 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
329
330 TP_ARGS(clnt, task, action)
b87700e3
AG
331)
332
3bc29f0a 333LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_queued,
b87700e3
AG
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
f127e61e 339 TP_FIELDS(
fa91fcac
MD
340 ctf_integer_hex(const struct rpc_clnt *, clnt, clnt)
341 ctf_integer_hex(const struct rpc_task *, task, task)
f127e61e
MD
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 )
b87700e3
AG
348)
349
3bc29f0a 350LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_sleep,
b87700e3
AG
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)
b87700e3
AG
355)
356
3bc29f0a 357LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_wakeup,
b87700e3
AG
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)
b87700e3 362)
0f891764 363#endif
b87700e3 364
9bbf98da 365#endif /* LTTNG_TRACE_RPC_H */
b87700e3 366
3b4aafcb 367#include <lttng/define_trace.h>
This page took 0.060696 seconds and 4 git commands to generate.