linux/include/trace/events/sunrpc.h
<<
>>
Prefs
   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_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
  32DEFINE_EVENT(rpc_task_status, rpc_call_status,
  33        TP_PROTO(struct rpc_task *task),
  34
  35        TP_ARGS(task)
  36);
  37
  38DEFINE_EVENT(rpc_task_status, rpc_bind_status,
  39        TP_PROTO(struct rpc_task *task),
  40
  41        TP_ARGS(task)
  42);
  43
  44TRACE_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
  64DECLARE_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
  98DEFINE_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
 106DEFINE_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
 114DEFINE_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
 122DECLARE_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
 159DEFINE_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
 167DEFINE_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>
 178