Fix: SUNRPC: Simplify defining common RPC trace events (v5.0)
[lttng-modules.git] / instrumentation / events / lttng-module / rpc.h
CommitLineData
b87700e3 1#undef TRACE_SYSTEM
9bbf98da 2#define TRACE_SYSTEM rpc
b87700e3 3
9bbf98da
MD
4#if !defined(LTTNG_TRACE_RPC_H) || defined(TRACE_HEADER_MULTI_READ)
5#define LTTNG_TRACE_RPC_H
b87700e3 6
6ec43db8 7#include <probes/lttng-tracepoint-event.h>
b87700e3
AG
8#include <linux/sunrpc/sched.h>
9#include <linux/sunrpc/clnt.h>
b87700e3 10
83407b95
MJ
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(unsigned 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))
4fe4aaac
MJ
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(unsigned int, client_id, task->tk_client->cl_clid)
46 ctf_integer(int, status, task->tk_status)
47 )
48)
83407b95
MJ
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)
4fe4aaac 61#else
3bc29f0a 62LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status,
b87700e3
AG
63
64 TP_PROTO(struct rpc_task *task),
65
66 TP_ARGS(task),
67
f127e61e 68 TP_FIELDS(
fa91fcac
MD
69 ctf_integer_hex(const struct rpc_task *, task, task)
70 ctf_integer_hex(const struct rpc_clnt *, clnt, task->tk_client)
f127e61e
MD
71 ctf_integer(int, status, task->tk_status)
72 )
b87700e3
AG
73)
74
3bc29f0a 75LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_call_status,
b87700e3
AG
76 TP_PROTO(struct rpc_task *task),
77
78 TP_ARGS(task)
79)
80
3bc29f0a 81LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_bind_status,
b87700e3
AG
82 TP_PROTO(struct rpc_task *task),
83
84 TP_ARGS(task)
85)
83407b95 86#endif
b87700e3 87
83407b95
MJ
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))
1d93f931
MJ
95LTTNG_TRACEPOINT_EVENT(rpc_connect_status,
96 TP_PROTO(const struct rpc_task *task),
97
98 TP_ARGS(task),
99
100 TP_FIELDS(
4fe4aaac
MJ
101 ctf_integer(unsigned int, task_id, task->tk_pid)
102 ctf_integer(unsigned int, client_id, task->tk_client->cl_clid)
1d93f931
MJ
103 ctf_integer(int, status, task->tk_status)
104 )
105)
83407b95
MJ
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(unsigned 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
1d93f931 131
83407b95 132#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,17,0))
1d93f931
MJ
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(
4fe4aaac
MJ
140 ctf_integer(unsigned int, task_id, task->tk_pid)
141 ctf_integer(unsigned int, client_id, task->tk_client->cl_clid)
1d93f931
MJ
142 ctf_integer_hex(const void *, action, action)
143 ctf_integer(unsigned long, runstate, task->tk_runstate)
144 ctf_integer(int, status, task->tk_status)
145 ctf_integer(unsigned short, flags, task->tk_flags)
146 )
147)
148
149LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_begin,
150
151 TP_PROTO(const struct rpc_task *task, const void *action),
152
153 TP_ARGS(task, action)
154)
155
156LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_run_action,
157
158 TP_PROTO(const struct rpc_task *task, const void *action),
159
160 TP_ARGS(task, action)
161)
162
163LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_complete,
164
165 TP_PROTO(const struct rpc_task *task, const void *action),
166
167 TP_ARGS(task, action)
168)
169
170LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_queued,
171
172 TP_PROTO(const struct rpc_task *task, const struct rpc_wait_queue *q),
173
174 TP_ARGS(task, q),
175
176 TP_FIELDS(
4fe4aaac
MJ
177 ctf_integer(unsigned int, task_id, task->tk_pid)
178 ctf_integer(unsigned int, client_id, task->tk_client->cl_clid)
1d93f931
MJ
179 ctf_integer(unsigned long, timeout, task->tk_timeout)
180 ctf_integer(unsigned long, runstate, task->tk_runstate)
181 ctf_integer(int, status, task->tk_status)
182 ctf_integer(unsigned short, flags, task->tk_flags)
183 ctf_string(q_name, rpc_qname(q))
184 )
185)
186
187LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_sleep,
188
189 TP_PROTO(const struct rpc_task *task, const struct rpc_wait_queue *q),
190
191 TP_ARGS(task, q)
192)
193
194LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_wakeup,
195
196 TP_PROTO(const struct rpc_task *task, const struct rpc_wait_queue *q),
197
198 TP_ARGS(task, q)
199)
200
4fe4aaac 201#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
4fe4aaac
MJ
202LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running,
203
204 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
205
206 TP_ARGS(clnt, task, action),
207
208 TP_FIELDS(
209 ctf_integer(unsigned int, task_id, task->tk_pid)
210 ctf_integer(unsigned int, client_id, task->tk_client->cl_clid)
211 ctf_integer_hex(const void *, action, action)
212 ctf_integer(unsigned long, runstate, task->tk_runstate)
213 ctf_integer(int, status, task->tk_status)
214 ctf_integer(unsigned short, flags, task->tk_flags)
215 )
216)
217
218LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_begin,
219
220 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
221
222 TP_ARGS(clnt, task, action)
223)
224
225LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_run_action,
226
227 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
228
229 TP_ARGS(clnt, task, action)
230)
231
232LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_complete,
233
234 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
235
236 TP_ARGS(clnt, task, action)
237)
238
239LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_queued,
240
241 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
242
243 TP_ARGS(clnt, task, q),
244
245 TP_FIELDS(
246 ctf_integer(unsigned int, task_id, task->tk_pid)
247 ctf_integer(unsigned int, client_id, task->tk_client->cl_clid)
248 ctf_integer(unsigned long, timeout, task->tk_timeout)
249 ctf_integer(unsigned long, runstate, task->tk_runstate)
250 ctf_integer(int, status, task->tk_status)
251 ctf_integer(unsigned short, flags, task->tk_flags)
252 ctf_string(q_name, rpc_qname(q))
253 )
254)
255
256LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_sleep,
257
258 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
259
260 TP_ARGS(clnt, task, q)
261)
262
263LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_wakeup,
264
265 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
266
267 TP_ARGS(clnt, task, q)
268)
269
1d93f931 270#else
3bc29f0a 271LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running,
b87700e3
AG
272
273 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
274
275 TP_ARGS(clnt, task, action),
276
f127e61e 277 TP_FIELDS(
fa91fcac
MD
278 ctf_integer_hex(const struct rpc_clnt *, clnt, clnt)
279 ctf_integer_hex(const struct rpc_task *, task, task)
280 ctf_integer_hex(const void *, action, action)
f127e61e
MD
281 ctf_integer(unsigned long, runstate, task->tk_runstate)
282 ctf_integer(int, status, task->tk_status)
283 ctf_integer(unsigned short, flags, task->tk_flags)
284 )
b87700e3
AG
285)
286
3bc29f0a 287LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_begin,
b87700e3
AG
288
289 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
290
291 TP_ARGS(clnt, task, action)
b87700e3
AG
292)
293
3bc29f0a 294LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_run_action,
b87700e3
AG
295
296 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
297
298 TP_ARGS(clnt, task, action)
b87700e3
AG
299)
300
3bc29f0a 301LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_complete,
b87700e3
AG
302
303 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
304
305 TP_ARGS(clnt, task, action)
b87700e3
AG
306)
307
3bc29f0a 308LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_queued,
b87700e3
AG
309
310 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
311
312 TP_ARGS(clnt, task, q),
313
f127e61e 314 TP_FIELDS(
fa91fcac
MD
315 ctf_integer_hex(const struct rpc_clnt *, clnt, clnt)
316 ctf_integer_hex(const struct rpc_task *, task, task)
f127e61e
MD
317 ctf_integer(unsigned long, timeout, task->tk_timeout)
318 ctf_integer(unsigned long, runstate, task->tk_runstate)
319 ctf_integer(int, status, task->tk_status)
320 ctf_integer(unsigned short, flags, task->tk_flags)
321 ctf_string(q_name, rpc_qname(q))
322 )
b87700e3
AG
323)
324
3bc29f0a 325LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_sleep,
b87700e3
AG
326
327 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
328
329 TP_ARGS(clnt, task, q)
b87700e3
AG
330)
331
3bc29f0a 332LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_wakeup,
b87700e3
AG
333
334 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
335
336 TP_ARGS(clnt, task, q)
b87700e3 337)
1d93f931 338#endif
b87700e3 339
9bbf98da 340#endif /* LTTNG_TRACE_RPC_H */
b87700e3 341
6ec43db8 342#include <probes/define_trace.h>
This page took 0.050693 seconds and 4 git commands to generate.