Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
sunrpc.h
Go to the documentation of this file.
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 
18  __field(const struct rpc_task *, task)
19  __field(const struct rpc_clnt *, clnt)
20  __field(int, status)
21  ),
22 
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 
50  __field(const struct rpc_task *, task)
51  __field(const struct rpc_clnt *, clnt)
52  __field(int, status)
53  ),
54 
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 
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 
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 
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 
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>