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 __entry->clnt = task->tk_client;
26 __entry->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 __entry->clnt = task->tk_client;
58 __entry->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 __entry->action = action;
83 __entry->runstate = task->tk_runstate;
84 __entry->status = task->tk_status;
85 __entry->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 __entry->clnt = clnt;
140 __entry->task = task;
141 __entry->timeout = task->tk_timeout;
142 __entry->runstate = task->tk_runstate;
143 __entry->status = task->tk_status;
144 __entry->flags = task->tk_flags;
145 __assign_str(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 <trace/define_trace.h>