2 #define TRACE_SYSTEM sunrpc
4 #if !defined(_TRACE_SUNRPC_H) || defined(TRACE_HEADER_MULTI_READ)
5 #define _TRACE_SUNRPC_H
7 #include <linux/sunrpc/sched.h>
8 #include <linux/sunrpc/clnt.h>
9 #include <linux/tracepoint.h>
11 DECLARE_EVENT_CLASS(rpc_task_status,
13 TP_PROTO(struct rpc_task *task),
18 __field(const struct rpc_task *, task)
19 __field(const struct rpc_clnt *, clnt)
25 tp_assign(clnt, task->tk_client)
26 tp_assign(status, task->tk_status)
29 TP_printk("task:%p@%p, status %d",__entry->task, __entry->clnt, __entry->status)
32 DEFINE_EVENT(rpc_task_status, rpc_call_status,
33 TP_PROTO(struct rpc_task *task),
38 DEFINE_EVENT(rpc_task_status, rpc_bind_status,
39 TP_PROTO(struct rpc_task *task),
44 TRACE_EVENT(rpc_connect_status,
45 TP_PROTO(struct rpc_task *task, int status),
47 TP_ARGS(task, status),
50 __field(const struct rpc_task *, task)
51 __field(const struct rpc_clnt *, clnt)
57 tp_assign(clnt, task->tk_client)
58 tp_assign(status, status)
61 TP_printk("task:%p@%p, status %d",__entry->task, __entry->clnt, __entry->status)
64 DECLARE_EVENT_CLASS(rpc_task_running,
66 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
68 TP_ARGS(clnt, task, action),
71 __field(const struct rpc_clnt *, clnt)
72 __field(const struct rpc_task *, task)
73 __field(const void *, action)
74 __field(unsigned long, runstate)
76 __field(unsigned short, flags)
82 tp_assign(action, action)
83 tp_assign(runstate, task->tk_runstate)
84 tp_assign(status, task->tk_status)
85 tp_assign(flags, task->tk_flags)
88 TP_printk("task:%p@%p flags=%4.4x state=%4.4lx status=%d action=%pf",
98 DEFINE_EVENT(rpc_task_running, rpc_task_begin,
100 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
102 TP_ARGS(clnt, task, action)
106 DEFINE_EVENT(rpc_task_running, rpc_task_run_action,
108 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
110 TP_ARGS(clnt, task, action)
114 DEFINE_EVENT(rpc_task_running, rpc_task_complete,
116 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
118 TP_ARGS(clnt, task, action)
122 DECLARE_EVENT_CLASS(rpc_task_queued,
124 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
126 TP_ARGS(clnt, task, q),
129 __field(const struct rpc_clnt *, clnt)
130 __field(const struct rpc_task *, task)
131 __field(unsigned long, timeout)
132 __field(unsigned long, runstate)
134 __field(unsigned short, flags)
135 __string(q_name, rpc_qname(q))
139 tp_assign(clnt, clnt)
140 tp_assign(task, task)
141 tp_assign(timeout, task->tk_timeout)
142 tp_assign(runstate, task->tk_runstate)
143 tp_assign(status, task->tk_status)
144 tp_assign(flags, task->tk_flags)
145 tp_strcpy(q_name, rpc_qname(q))
148 TP_printk("task:%p@%p flags=%4.4x state=%4.4lx status=%d timeout=%lu queue=%s",
159 DEFINE_EVENT(rpc_task_queued, rpc_task_sleep,
161 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
163 TP_ARGS(clnt, task, q)
167 DEFINE_EVENT(rpc_task_queued, rpc_task_wakeup,
169 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
171 TP_ARGS(clnt, task, q)
175 #endif /* _TRACE_SUNRPC_H */
177 #include "../../../probes/define_trace.h"