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