0bbb717c642ded8faa1bab1526a310a886b71c5f
1 // SPDX-FileCopyrightText: 2012 Andrew Gabbasov <andrew_gabbasov@mentor.com>
3 // SPDX-License-Identifier: GPL-2.0-only
6 #define TRACE_SYSTEM rpc
8 #if !defined(LTTNG_TRACE_RPC_H) || defined(TRACE_HEADER_MULTI_READ)
9 #define LTTNG_TRACE_RPC_H
11 #include <lttng/tracepoint-event.h>
12 #include <linux/sunrpc/sched.h>
13 #include <linux/sunrpc/clnt.h>
15 #ifndef ONCE_LTTNG_RPC_H
16 #define ONCE_LTTNG_RPC_H
19 int lttng_get_clid(const struct rpc_task
*task
)
21 struct rpc_clnt
*tk_client
;
23 tk_client
= task
->tk_client
;
27 * The cl_clid field is always initialized to positive signed
28 * integers. Negative signed integer values are treated as
31 return (int) tk_client
->cl_clid
;
34 #endif /* ONCE_LTTNG_RPC_H */
36 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,0,0) || \
37 LTTNG_RHEL_KERNEL_RANGE(4,18,0,193,0,0, 4,19,0,0,0,0))
38 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status
,
40 TP_PROTO(const struct rpc_task
*task
),
45 ctf_integer(unsigned int, task_id
, task
->tk_pid
)
46 ctf_integer(int, client_id
, lttng_get_clid(task
))
47 ctf_integer(int, status
, task
->tk_status
)
51 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status
, rpc_call_status
,
52 TP_PROTO(const struct rpc_task
*task
),
57 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status
, rpc_bind_status
,
58 TP_PROTO(const struct rpc_task
*task
),
63 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status
,
65 TP_PROTO(struct rpc_task
*task
),
70 ctf_integer(unsigned int, task_id
, task
->tk_pid
)
71 ctf_integer(int, client_id
, lttng_get_clid(task
))
72 ctf_integer(int, status
, task
->tk_status
)
76 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status
, rpc_call_status
,
77 TP_PROTO(struct rpc_task
*task
),
82 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status
, rpc_bind_status
,
83 TP_PROTO(struct rpc_task
*task
),
89 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,0,0))
90 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status
, rpc_connect_status
,
91 TP_PROTO(const struct rpc_task
*task
),
95 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,17,0))
96 LTTNG_TRACEPOINT_EVENT(rpc_connect_status
,
97 TP_PROTO(const struct rpc_task
*task
),
102 ctf_integer(unsigned int, task_id
, task
->tk_pid
)
103 ctf_integer(int, client_id
, lttng_get_clid(task
))
104 ctf_integer(int, status
, task
->tk_status
)
108 LTTNG_TRACEPOINT_EVENT(rpc_connect_status
,
109 TP_PROTO(struct rpc_task
*task
, int status
),
111 TP_ARGS(task
, status
),
114 ctf_integer(unsigned int, task_id
, task
->tk_pid
)
115 ctf_integer(int, client_id
, lttng_get_clid(task
))
116 ctf_integer(int, status
, status
)
121 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,17,0))
122 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running
,
124 TP_PROTO(const struct rpc_task
*task
, const void *action
),
126 TP_ARGS(task
, action
),
129 ctf_integer(unsigned int, task_id
, task
->tk_pid
)
130 ctf_integer(int, client_id
, lttng_get_clid(task
))
131 ctf_integer_hex(const void *, action
, action
)
132 ctf_integer(unsigned long, runstate
, task
->tk_runstate
)
133 ctf_integer(int, status
, task
->tk_status
)
134 ctf_integer(unsigned short, flags
, task
->tk_flags
)
138 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running
, rpc_task_begin
,
140 TP_PROTO(const struct rpc_task
*task
, const void *action
),
142 TP_ARGS(task
, action
)
145 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running
, rpc_task_run_action
,
147 TP_PROTO(const struct rpc_task
*task
, const void *action
),
149 TP_ARGS(task
, action
)
152 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running
, rpc_task_complete
,
154 TP_PROTO(const struct rpc_task
*task
, const void *action
),
156 TP_ARGS(task
, action
)
159 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_queued
,
161 TP_PROTO(const struct rpc_task
*task
, const struct rpc_wait_queue
*q
),
166 ctf_integer(unsigned int, task_id
, task
->tk_pid
)
167 ctf_integer(int, client_id
, lttng_get_clid(task
))
168 ctf_integer(unsigned long, timeout
, task
->tk_timeout
)
169 ctf_integer(unsigned long, runstate
, task
->tk_runstate
)
170 ctf_integer(int, status
, task
->tk_status
)
171 ctf_integer(unsigned short, flags
, task
->tk_flags
)
172 ctf_string(q_name
, rpc_qname(q
))
176 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued
, rpc_task_sleep
,
178 TP_PROTO(const struct rpc_task
*task
, const struct rpc_wait_queue
*q
),
183 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued
, rpc_task_wakeup
,
185 TP_PROTO(const struct rpc_task
*task
, const struct rpc_wait_queue
*q
),
191 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running
,
193 TP_PROTO(const struct rpc_clnt
*clnt
, const struct rpc_task
*task
, const void *action
),
195 TP_ARGS(clnt
, task
, action
),
198 ctf_integer(unsigned int, task_id
, task
->tk_pid
)
199 ctf_integer(int, client_id
, lttng_get_clid(task
))
200 ctf_integer_hex(const void *, action
, action
)
201 ctf_integer(unsigned long, runstate
, task
->tk_runstate
)
202 ctf_integer(int, status
, task
->tk_status
)
203 ctf_integer(unsigned short, flags
, task
->tk_flags
)
207 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running
, rpc_task_begin
,
209 TP_PROTO(const struct rpc_clnt
*clnt
, const struct rpc_task
*task
, const void *action
),
211 TP_ARGS(clnt
, task
, action
)
214 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running
, rpc_task_run_action
,
216 TP_PROTO(const struct rpc_clnt
*clnt
, const struct rpc_task
*task
, const void *action
),
218 TP_ARGS(clnt
, task
, action
)
221 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running
, rpc_task_complete
,
223 TP_PROTO(const struct rpc_clnt
*clnt
, const struct rpc_task
*task
, const void *action
),
225 TP_ARGS(clnt
, task
, action
)
228 LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_queued
,
230 TP_PROTO(const struct rpc_clnt
*clnt
, const struct rpc_task
*task
, const struct rpc_wait_queue
*q
),
232 TP_ARGS(clnt
, task
, q
),
235 ctf_integer(unsigned int, task_id
, task
->tk_pid
)
236 ctf_integer(int, client_id
, lttng_get_clid(task
))
237 ctf_integer(unsigned long, timeout
, task
->tk_timeout
)
238 ctf_integer(unsigned long, runstate
, task
->tk_runstate
)
239 ctf_integer(int, status
, task
->tk_status
)
240 ctf_integer(unsigned short, flags
, task
->tk_flags
)
241 ctf_string(q_name
, rpc_qname(q
))
245 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued
, rpc_task_sleep
,
247 TP_PROTO(const struct rpc_clnt
*clnt
, const struct rpc_task
*task
, const struct rpc_wait_queue
*q
),
249 TP_ARGS(clnt
, task
, q
)
252 LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued
, rpc_task_wakeup
,
254 TP_PROTO(const struct rpc_clnt
*clnt
, const struct rpc_task
*task
, const struct rpc_wait_queue
*q
),
256 TP_ARGS(clnt
, task
, q
)
260 #endif /* LTTNG_TRACE_RPC_H */
262 #include <lttng/define_trace.h>
This page took 0.035733 seconds and 5 git commands to generate.