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
16 int lttng_get_clid(const struct rpc_task
*task
)
18 struct rpc_clnt
*tk_client
;
20 tk_client
= task
->tk_client
;
24 * The cl_clid field is always initialized to positive signed
25 * integers. Negative signed integer values are treated as
28 return (int) tk_client
->cl_clid
;
31 #endif /* ONCE_LTTNG_RPC_H */
33 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,0,0) || \
34 LTTNG_RHEL_KERNEL_RANGE(4,18,0,193,0,0, 4,19,0,0,0,0))
35 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status
,
37 TP_PROTO(const struct rpc_task
*task
),
42 ctf_integer(unsigned int, task_id
, task
->tk_pid
)
43 ctf_integer(int, client_id
, lttng_get_clid(task
))
44 ctf_integer(int, status
, task
->tk_status
)
48 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status
, rpc_call_status
,
49 TP_PROTO(const struct rpc_task
*task
),
54 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status
, rpc_bind_status
,
55 TP_PROTO(const struct rpc_task
*task
),
60 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status
,
62 TP_PROTO(struct rpc_task
*task
),
67 ctf_integer(unsigned int, task_id
, task
->tk_pid
)
68 ctf_integer(int, client_id
, lttng_get_clid(task
))
69 ctf_integer(int, status
, task
->tk_status
)
73 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status
, rpc_call_status
,
74 TP_PROTO(struct rpc_task
*task
),
79 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status
, rpc_bind_status
,
80 TP_PROTO(struct rpc_task
*task
),
86 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,0,0))
87 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status
, rpc_connect_status
,
88 TP_PROTO(const struct rpc_task
*task
),
92 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,17,0))
93 LTTNG_TRACEPOINT_EVENT(rpc_connect_status
,
94 TP_PROTO(const struct rpc_task
*task
),
99 ctf_integer(unsigned int, task_id
, task
->tk_pid
)
100 ctf_integer(int, client_id
, lttng_get_clid(task
))
101 ctf_integer(int, status
, task
->tk_status
)
105 LTTNG_TRACEPOINT_EVENT(rpc_connect_status
,
106 TP_PROTO(struct rpc_task
*task
, int status
),
108 TP_ARGS(task
, status
),
111 ctf_integer(unsigned int, task_id
, task
->tk_pid
)
112 ctf_integer(int, client_id
, lttng_get_clid(task
))
113 ctf_integer(int, status
, status
)
118 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,17,0))
119 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running
,
121 TP_PROTO(const struct rpc_task
*task
, const void *action
),
123 TP_ARGS(task
, action
),
126 ctf_integer(unsigned int, task_id
, task
->tk_pid
)
127 ctf_integer(int, client_id
, lttng_get_clid(task
))
128 ctf_integer_hex(const void *, action
, action
)
129 ctf_integer(unsigned long, runstate
, task
->tk_runstate
)
130 ctf_integer(int, status
, task
->tk_status
)
131 ctf_integer(unsigned short, flags
, task
->tk_flags
)
135 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running
, rpc_task_begin
,
137 TP_PROTO(const struct rpc_task
*task
, const void *action
),
139 TP_ARGS(task
, action
)
142 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running
, rpc_task_run_action
,
144 TP_PROTO(const struct rpc_task
*task
, const void *action
),
146 TP_ARGS(task
, action
)
149 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running
, rpc_task_complete
,
151 TP_PROTO(const struct rpc_task
*task
, const void *action
),
153 TP_ARGS(task
, action
)
156 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_queued
,
158 TP_PROTO(const struct rpc_task
*task
, const struct rpc_wait_queue
*q
),
163 ctf_integer(unsigned int, task_id
, task
->tk_pid
)
164 ctf_integer(int, client_id
, lttng_get_clid(task
))
165 ctf_integer(unsigned long, timeout
, task
->tk_timeout
)
166 ctf_integer(unsigned long, runstate
, task
->tk_runstate
)
167 ctf_integer(int, status
, task
->tk_status
)
168 ctf_integer(unsigned short, flags
, task
->tk_flags
)
169 ctf_string(q_name
, rpc_qname(q
))
173 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued
, rpc_task_sleep
,
175 TP_PROTO(const struct rpc_task
*task
, const struct rpc_wait_queue
*q
),
180 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued
, rpc_task_wakeup
,
182 TP_PROTO(const struct rpc_task
*task
, const struct rpc_wait_queue
*q
),
188 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running
,
190 TP_PROTO(const struct rpc_clnt
*clnt
, const struct rpc_task
*task
, const void *action
),
192 TP_ARGS(clnt
, task
, action
),
195 ctf_integer(unsigned int, task_id
, task
->tk_pid
)
196 ctf_integer(int, client_id
, lttng_get_clid(task
))
197 ctf_integer_hex(const void *, action
, action
)
198 ctf_integer(unsigned long, runstate
, task
->tk_runstate
)
199 ctf_integer(int, status
, task
->tk_status
)
200 ctf_integer(unsigned short, flags
, task
->tk_flags
)
204 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running
, rpc_task_begin
,
206 TP_PROTO(const struct rpc_clnt
*clnt
, const struct rpc_task
*task
, const void *action
),
208 TP_ARGS(clnt
, task
, action
)
211 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running
, rpc_task_run_action
,
213 TP_PROTO(const struct rpc_clnt
*clnt
, const struct rpc_task
*task
, const void *action
),
215 TP_ARGS(clnt
, task
, action
)
218 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running
, rpc_task_complete
,
220 TP_PROTO(const struct rpc_clnt
*clnt
, const struct rpc_task
*task
, const void *action
),
222 TP_ARGS(clnt
, task
, action
)
225 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_queued
,
227 TP_PROTO(const struct rpc_clnt
*clnt
, const struct rpc_task
*task
, const struct rpc_wait_queue
*q
),
229 TP_ARGS(clnt
, task
, q
),
232 ctf_integer(unsigned int, task_id
, task
->tk_pid
)
233 ctf_integer(int, client_id
, lttng_get_clid(task
))
234 ctf_integer(unsigned long, timeout
, task
->tk_timeout
)
235 ctf_integer(unsigned long, runstate
, task
->tk_runstate
)
236 ctf_integer(int, status
, task
->tk_status
)
237 ctf_integer(unsigned short, flags
, task
->tk_flags
)
238 ctf_string(q_name
, rpc_qname(q
))
242 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued
, rpc_task_sleep
,
244 TP_PROTO(const struct rpc_clnt
*clnt
, const struct rpc_task
*task
, const struct rpc_wait_queue
*q
),
246 TP_ARGS(clnt
, task
, q
)
249 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued
, rpc_task_wakeup
,
251 TP_PROTO(const struct rpc_clnt
*clnt
, const struct rpc_task
*task
, const struct rpc_wait_queue
*q
),
253 TP_ARGS(clnt
, task
, q
)
257 #endif /* LTTNG_TRACE_RPC_H */
259 #include <lttng/define_trace.h>
This page took 0.053432 seconds and 4 git commands to generate.