aboutsummaryrefslogtreecommitdiffstats
path: root/include/trace/events
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2012-01-20 14:52:23 -0500
committerTrond Myklebust <Trond.Myklebust@netapp.com>2012-01-31 19:28:21 -0500
commit82b0a4c3c171b180629696e8d1d5f52516f711e6 (patch)
tree60aab7bc3a767e3c017a228597eaaeedeffe4c00 /include/trace/events
parenta613fa168afc19179a7547fbba45644c5b6912bf (diff)
SUNRPC: Add trace events to the sunrpc subsystem
Add declarations to allow tracing of RPC call creation, running, sleeping, and destruction. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'include/trace/events')
-rw-r--r--include/trace/events/sunrpc.h124
1 files changed, 124 insertions, 0 deletions
diff --git a/include/trace/events/sunrpc.h b/include/trace/events/sunrpc.h
new file mode 100644
index 000000000000..51cc9490919f
--- /dev/null
+++ b/include/trace/events/sunrpc.h
@@ -0,0 +1,124 @@
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
11DECLARE_EVENT_CLASS(rpc_task_running,
12
13 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
14
15 TP_ARGS(clnt, task, action),
16
17 TP_STRUCT__entry(
18 __field(const struct rpc_clnt *, clnt)
19 __field(const struct rpc_task *, task)
20 __field(const void *, action)
21 __field(unsigned long, runstate)
22 __field(int, status)
23 __field(unsigned short, flags)
24 ),
25
26 TP_fast_assign(
27 __entry->clnt = clnt;
28 __entry->task = task;
29 __entry->action = action;
30 __entry->runstate = task->tk_runstate;
31 __entry->status = task->tk_status;
32 __entry->flags = task->tk_flags;
33 ),
34
35 TP_printk("task:%p@%p flags=%4.4x state=%4.4lx status=%d action=%pf",
36 __entry->task,
37 __entry->clnt,
38 __entry->flags,
39 __entry->runstate,
40 __entry->status,
41 __entry->action
42 )
43);
44
45DEFINE_EVENT(rpc_task_running, rpc_task_begin,
46
47 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
48
49 TP_ARGS(clnt, task, action)
50
51);
52
53DEFINE_EVENT(rpc_task_running, rpc_task_run_action,
54
55 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
56
57 TP_ARGS(clnt, task, action)
58
59);
60
61DEFINE_EVENT(rpc_task_running, rpc_task_complete,
62
63 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
64
65 TP_ARGS(clnt, task, action)
66
67);
68
69DECLARE_EVENT_CLASS(rpc_task_queued,
70
71 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
72
73 TP_ARGS(clnt, task, q),
74
75 TP_STRUCT__entry(
76 __field(const struct rpc_clnt *, clnt)
77 __field(const struct rpc_task *, task)
78 __field(const struct rpc_wait_queue *, queue)
79 __field(unsigned long, timeout)
80 __field(unsigned long, runstate)
81 __field(int, status)
82 __field(unsigned short, flags)
83 ),
84
85 TP_fast_assign(
86 __entry->clnt = clnt;
87 __entry->task = task;
88 __entry->queue = q;
89 __entry->timeout = task->tk_timeout;
90 __entry->runstate = task->tk_runstate;
91 __entry->status = task->tk_status;
92 __entry->flags = task->tk_flags;
93 ),
94
95 TP_printk("task:%p@%p flags=%4.4x state=%4.4lx status=%d timeout=%lu queue=%s",
96 __entry->task,
97 __entry->clnt,
98 __entry->flags,
99 __entry->runstate,
100 __entry->status,
101 __entry->timeout,
102 rpc_qname(__entry->queue)
103 )
104);
105
106DEFINE_EVENT(rpc_task_queued, rpc_task_sleep,
107
108 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
109
110 TP_ARGS(clnt, task, q)
111
112);
113
114DEFINE_EVENT(rpc_task_queued, rpc_task_wakeup,
115
116 TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
117
118 TP_ARGS(clnt, task, q)
119
120);
121
122#endif /* _TRACE_SUNRPC_H */
123
124#include <trace/define_trace.h>