1 /* SPDX-License-Identifier: GPL-2.0-only */
3 #define TRACE_SYSTEM rpc
5 #if !defined(LTTNG_TRACE_RPC_H) || defined(TRACE_HEADER_MULTI_READ)
6 #define LTTNG_TRACE_RPC_H
8 #include <lttng/tracepoint-event.h>
9 #include <linux/sunrpc/sched.h>
10 #include <linux/sunrpc/clnt.h>
12 #ifndef ONCE_LTTNG_RPC_H
13 #define ONCE_LTTNG_RPC_H
15 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
17 int lttng_get_clid(const struct rpc_task
*task
)
19 struct rpc_clnt
*tk_client
;
21 tk_client
= task
->tk_client
;
25 * The cl_clid field is always initialized to positive signed
26 * integers. Negative signed integer values are treated as
29 return (int) tk_client
->cl_clid
;
31 #endif /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0)) */
33 #endif /* ONCE_LTTNG_RPC_H */
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))
37 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status
,
39 TP_PROTO(const struct rpc_task
*task
),
44 ctf_integer(unsigned int, task_id
, task
->tk_pid
)
45 ctf_integer(int, client_id
, lttng_get_clid(task
))
46 ctf_integer(int, status
, task
->tk_status
)
50 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status
, rpc_call_status
,
51 TP_PROTO(const struct rpc_task
*task
),
56 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status
, rpc_bind_status
,
57 TP_PROTO(const struct rpc_task
*task
),
61 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
62 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status
,
64 TP_PROTO(struct rpc_task
*task
),
69 ctf_integer(unsigned int, task_id
, task
->tk_pid
)
70 ctf_integer(int, client_id
, lttng_get_clid(task
))
71 ctf_integer(int, status
, task
->tk_status
)
75 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status
, rpc_call_status
,
76 TP_PROTO(struct rpc_task
*task
),
81 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status
, rpc_bind_status
,
82 TP_PROTO(struct rpc_task
*task
),
87 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status
,
89 TP_PROTO(struct rpc_task
*task
),
94 ctf_integer_hex(const struct rpc_task
*, task
, task
)
95 ctf_integer_hex(const struct rpc_clnt
*, clnt
, task
->tk_client
)
96 ctf_integer(int, status
, task
->tk_status
)
100 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status
, rpc_call_status
,
101 TP_PROTO(struct rpc_task
*task
),
106 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status
, rpc_bind_status
,
107 TP_PROTO(struct rpc_task
*task
),
113 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,0,0))
114 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status
, rpc_connect_status
,
115 TP_PROTO(const struct rpc_task
*task
),
119 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,17,0))
120 LTTNG_TRACEPOINT_EVENT(rpc_connect_status
,
121 TP_PROTO(const struct rpc_task
*task
),
126 ctf_integer(unsigned int, task_id
, task
->tk_pid
)
127 ctf_integer(int, client_id
, lttng_get_clid(task
))
128 ctf_integer(int, status
, task
->tk_status
)
131 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
132 LTTNG_TRACEPOINT_EVENT(rpc_connect_status
,
133 TP_PROTO(struct rpc_task
*task
, int status
),
135 TP_ARGS(task
, status
),
138 ctf_integer(unsigned int, task_id
, task
->tk_pid
)
139 ctf_integer(int, client_id
, lttng_get_clid(task
))
140 ctf_integer(int, status
, status
)
144 LTTNG_TRACEPOINT_EVENT(rpc_connect_status
,
145 TP_PROTO(struct rpc_task
*task
, int status
),
147 TP_ARGS(task
, status
),
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
)
157 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,17,0))
158 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running
,
160 TP_PROTO(const struct rpc_task
*task
, const void *action
),
162 TP_ARGS(task
, action
),
165 ctf_integer(unsigned int, task_id
, task
->tk_pid
)
166 ctf_integer(int, client_id
, lttng_get_clid(task
))
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
)
174 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running
, rpc_task_begin
,
176 TP_PROTO(const struct rpc_task
*task
, const void *action
),
178 TP_ARGS(task
, action
)
181 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running
, rpc_task_run_action
,
183 TP_PROTO(const struct rpc_task
*task
, const void *action
),
185 TP_ARGS(task
, action
)
188 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running
, rpc_task_complete
,
190 TP_PROTO(const struct rpc_task
*task
, const void *action
),
192 TP_ARGS(task
, action
)
195 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_queued
,
197 TP_PROTO(const struct rpc_task
*task
, const struct rpc_wait_queue
*q
),
202 ctf_integer(unsigned int, task_id
, task
->tk_pid
)
203 ctf_integer(int, client_id
, lttng_get_clid(task
))
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
))
212 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued
, rpc_task_sleep
,
214 TP_PROTO(const struct rpc_task
*task
, const struct rpc_wait_queue
*q
),
219 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued
, rpc_task_wakeup
,
221 TP_PROTO(const struct rpc_task
*task
, const struct rpc_wait_queue
*q
),
226 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,12,0))
227 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running
,
229 TP_PROTO(const struct rpc_clnt
*clnt
, const struct rpc_task
*task
, const void *action
),
231 TP_ARGS(clnt
, task
, action
),
234 ctf_integer(unsigned int, task_id
, task
->tk_pid
)
235 ctf_integer(int, client_id
, lttng_get_clid(task
))
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
)
243 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running
, rpc_task_begin
,
245 TP_PROTO(const struct rpc_clnt
*clnt
, const struct rpc_task
*task
, const void *action
),
247 TP_ARGS(clnt
, task
, action
)
250 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running
, rpc_task_run_action
,
252 TP_PROTO(const struct rpc_clnt
*clnt
, const struct rpc_task
*task
, const void *action
),
254 TP_ARGS(clnt
, task
, action
)
257 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running
, rpc_task_complete
,
259 TP_PROTO(const struct rpc_clnt
*clnt
, const struct rpc_task
*task
, const void *action
),
261 TP_ARGS(clnt
, task
, action
)
264 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_queued
,
266 TP_PROTO(const struct rpc_clnt
*clnt
, const struct rpc_task
*task
, const struct rpc_wait_queue
*q
),
268 TP_ARGS(clnt
, task
, q
),
271 ctf_integer(unsigned int, task_id
, task
->tk_pid
)
272 ctf_integer(int, client_id
, lttng_get_clid(task
))
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
))
281 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued
, rpc_task_sleep
,
283 TP_PROTO(const struct rpc_clnt
*clnt
, const struct rpc_task
*task
, const struct rpc_wait_queue
*q
),
285 TP_ARGS(clnt
, task
, q
)
288 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued
, rpc_task_wakeup
,
290 TP_PROTO(const struct rpc_clnt
*clnt
, const struct rpc_task
*task
, const struct rpc_wait_queue
*q
),
292 TP_ARGS(clnt
, task
, q
)
296 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running
,
298 TP_PROTO(const struct rpc_clnt
*clnt
, const struct rpc_task
*task
, const void *action
),
300 TP_ARGS(clnt
, task
, action
),
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
)
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
)
312 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running
, rpc_task_begin
,
314 TP_PROTO(const struct rpc_clnt
*clnt
, const struct rpc_task
*task
, const void *action
),
316 TP_ARGS(clnt
, task
, action
)
319 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running
, rpc_task_run_action
,
321 TP_PROTO(const struct rpc_clnt
*clnt
, const struct rpc_task
*task
, const void *action
),
323 TP_ARGS(clnt
, task
, action
)
326 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running
, rpc_task_complete
,
328 TP_PROTO(const struct rpc_clnt
*clnt
, const struct rpc_task
*task
, const void *action
),
330 TP_ARGS(clnt
, task
, action
)
333 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_queued
,
335 TP_PROTO(const struct rpc_clnt
*clnt
, const struct rpc_task
*task
, const struct rpc_wait_queue
*q
),
337 TP_ARGS(clnt
, task
, q
),
340 ctf_integer_hex(const struct rpc_clnt
*, clnt
, clnt
)
341 ctf_integer_hex(const struct rpc_task
*, task
, task
)
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
))
350 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued
, rpc_task_sleep
,
352 TP_PROTO(const struct rpc_clnt
*clnt
, const struct rpc_task
*task
, const struct rpc_wait_queue
*q
),
354 TP_ARGS(clnt
, task
, q
)
357 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued
, rpc_task_wakeup
,
359 TP_PROTO(const struct rpc_clnt
*clnt
, const struct rpc_task
*task
, const struct rpc_wait_queue
*q
),
361 TP_ARGS(clnt
, task
, q
)
365 #endif /* LTTNG_TRACE_RPC_H */
367 #include <lttng/define_trace.h>
This page took 0.036772 seconds and 4 git commands to generate.