Commit | Line | Data |
---|---|---|
b87700e3 AG |
1 | #undef TRACE_SYSTEM |
2 | #define TRACE_SYSTEM sunrpc | |
3 | ||
4 | #if !defined(_TRACE_SUNRPC_H) || defined(TRACE_HEADER_MULTI_READ) | |
5 | #define _TRACE_SUNRPC_H | |
6 | ||
7 | #include <linux/sunrpc/sched.h> | |
8 | #include <linux/sunrpc/clnt.h> | |
9 | #include <linux/tracepoint.h> | |
10 | ||
11 | DECLARE_EVENT_CLASS(rpc_task_status, | |
12 | ||
13 | TP_PROTO(struct rpc_task *task), | |
14 | ||
15 | TP_ARGS(task), | |
16 | ||
17 | TP_STRUCT__entry( | |
18 | __field(const struct rpc_task *, task) | |
19 | __field(const struct rpc_clnt *, clnt) | |
20 | __field(int, status) | |
21 | ), | |
22 | ||
23 | TP_fast_assign( | |
24 | __entry->task = task; | |
25 | __entry->clnt = task->tk_client; | |
26 | __entry->status = task->tk_status; | |
27 | ), | |
28 | ||
29 | TP_printk("task:%p@%p, status %d",__entry->task, __entry->clnt, __entry->status) | |
30 | ); | |
31 | ||
32 | DEFINE_EVENT(rpc_task_status, rpc_call_status, | |
33 | TP_PROTO(struct rpc_task *task), | |
34 | ||
35 | TP_ARGS(task) | |
36 | ); | |
37 | ||
38 | DEFINE_EVENT(rpc_task_status, rpc_bind_status, | |
39 | TP_PROTO(struct rpc_task *task), | |
40 | ||
41 | TP_ARGS(task) | |
42 | ); | |
43 | ||
44 | TRACE_EVENT(rpc_connect_status, | |
45 | TP_PROTO(struct rpc_task *task, int status), | |
46 | ||
47 | TP_ARGS(task, status), | |
48 | ||
49 | TP_STRUCT__entry( | |
50 | __field(const struct rpc_task *, task) | |
51 | __field(const struct rpc_clnt *, clnt) | |
52 | __field(int, status) | |
53 | ), | |
54 | ||
55 | TP_fast_assign( | |
56 | __entry->task = task; | |
57 | __entry->clnt = task->tk_client; | |
58 | __entry->status = status; | |
59 | ), | |
60 | ||
61 | TP_printk("task:%p@%p, status %d",__entry->task, __entry->clnt, __entry->status) | |
62 | ); | |
63 | ||
64 | DECLARE_EVENT_CLASS(rpc_task_running, | |
65 | ||
66 | TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action), | |
67 | ||
68 | TP_ARGS(clnt, task, action), | |
69 | ||
70 | TP_STRUCT__entry( | |
71 | __field(const struct rpc_clnt *, clnt) | |
72 | __field(const struct rpc_task *, task) | |
73 | __field(const void *, action) | |
74 | __field(unsigned long, runstate) | |
75 | __field(int, status) | |
76 | __field(unsigned short, flags) | |
77 | ), | |
78 | ||
79 | TP_fast_assign( | |
80 | __entry->clnt = clnt; | |
81 | __entry->task = task; | |
82 | __entry->action = action; | |
83 | __entry->runstate = task->tk_runstate; | |
84 | __entry->status = task->tk_status; | |
85 | __entry->flags = task->tk_flags; | |
86 | ), | |
87 | ||
88 | TP_printk("task:%p@%p flags=%4.4x state=%4.4lx status=%d action=%pf", | |
89 | __entry->task, | |
90 | __entry->clnt, | |
91 | __entry->flags, | |
92 | __entry->runstate, | |
93 | __entry->status, | |
94 | __entry->action | |
95 | ) | |
96 | ); | |
97 | ||
98 | DEFINE_EVENT(rpc_task_running, rpc_task_begin, | |
99 | ||
100 | TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action), | |
101 | ||
102 | TP_ARGS(clnt, task, action) | |
103 | ||
104 | ); | |
105 | ||
106 | DEFINE_EVENT(rpc_task_running, rpc_task_run_action, | |
107 | ||
108 | TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action), | |
109 | ||
110 | TP_ARGS(clnt, task, action) | |
111 | ||
112 | ); | |
113 | ||
114 | DEFINE_EVENT(rpc_task_running, rpc_task_complete, | |
115 | ||
116 | TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action), | |
117 | ||
118 | TP_ARGS(clnt, task, action) | |
119 | ||
120 | ); | |
121 | ||
122 | DECLARE_EVENT_CLASS(rpc_task_queued, | |
123 | ||
124 | TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q), | |
125 | ||
126 | TP_ARGS(clnt, task, q), | |
127 | ||
128 | TP_STRUCT__entry( | |
129 | __field(const struct rpc_clnt *, clnt) | |
130 | __field(const struct rpc_task *, task) | |
131 | __field(unsigned long, timeout) | |
132 | __field(unsigned long, runstate) | |
133 | __field(int, status) | |
134 | __field(unsigned short, flags) | |
135 | __string(q_name, rpc_qname(q)) | |
136 | ), | |
137 | ||
138 | TP_fast_assign( | |
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)); | |
146 | ), | |
147 | ||
148 | TP_printk("task:%p@%p flags=%4.4x state=%4.4lx status=%d timeout=%lu queue=%s", | |
149 | __entry->task, | |
150 | __entry->clnt, | |
151 | __entry->flags, | |
152 | __entry->runstate, | |
153 | __entry->status, | |
154 | __entry->timeout, | |
155 | __get_str(q_name) | |
156 | ) | |
157 | ); | |
158 | ||
159 | DEFINE_EVENT(rpc_task_queued, rpc_task_sleep, | |
160 | ||
161 | TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q), | |
162 | ||
163 | TP_ARGS(clnt, task, q) | |
164 | ||
165 | ); | |
166 | ||
167 | DEFINE_EVENT(rpc_task_queued, rpc_task_wakeup, | |
168 | ||
169 | TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q), | |
170 | ||
171 | TP_ARGS(clnt, task, q) | |
172 | ||
173 | ); | |
174 | ||
175 | #endif /* _TRACE_SUNRPC_H */ | |
176 | ||
177 | #include <trace/define_trace.h> |