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