4dd9cabf56ab8e508f1ea59c53666f263bc94be8
[lttng-modules.git] / instrumentation / events / lttng-module / rpc.h
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))
12 LTTNG_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
25 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_call_status,
26 TP_PROTO(const struct rpc_task *task),
27
28 TP_ARGS(task)
29 )
30
31 LTTNG_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))
37 LTTNG_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
50 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_call_status,
51 TP_PROTO(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(struct rpc_task *task),
58
59 TP_ARGS(task)
60 )
61 #else
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_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
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 #endif
87
88 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,0,0))
89 LTTNG_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))
95 LTTNG_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))
107 LTTNG_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
119 LTTNG_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))
133 LTTNG_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
150 LTTNG_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
157 LTTNG_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
164 LTTNG_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
171 LTTNG_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
189 LTTNG_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
196 LTTNG_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))
204 LTTNG_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
221 LTTNG_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
228 LTTNG_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
235 LTTNG_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
242 LTTNG_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
260 LTTNG_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
267 LTTNG_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
275 LTTNG_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
291 LTTNG_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
298 LTTNG_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
305 LTTNG_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
312 LTTNG_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
329 LTTNG_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
336 LTTNG_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.03589 seconds and 3 git commands to generate.