Commit | Line | Data |
---|---|---|
b7cdc182 | 1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
b87700e3 | 2 | #undef TRACE_SYSTEM |
9bbf98da | 3 | #define TRACE_SYSTEM rpc |
b87700e3 | 4 | |
9bbf98da MD |
5 | #if !defined(LTTNG_TRACE_RPC_H) || defined(TRACE_HEADER_MULTI_READ) |
6 | #define LTTNG_TRACE_RPC_H | |
b87700e3 | 7 | |
6ec43db8 | 8 | #include <probes/lttng-tracepoint-event.h> |
b87700e3 AG |
9 | #include <linux/sunrpc/sched.h> |
10 | #include <linux/sunrpc/clnt.h> | |
b87700e3 | 11 | |
b6903d57 MD |
12 | #ifndef ONCE_LTTNG_RPC_H |
13 | #define ONCE_LTTNG_RPC_H | |
14 | ||
b6903d57 MD |
15 | static inline |
16 | int lttng_get_clid(const struct rpc_task *task) | |
17 | { | |
18 | struct rpc_clnt *tk_client; | |
19 | ||
20 | tk_client = task->tk_client; | |
21 | if (!tk_client) | |
22 | return -1; | |
23 | /* | |
24 | * The cl_clid field is always initialized to positive signed | |
25 | * integers. Negative signed integer values are treated as | |
26 | * errors. | |
27 | */ | |
28 | return (int) tk_client->cl_clid; | |
29 | } | |
b6903d57 MD |
30 | |
31 | #endif /* ONCE_LTTNG_RPC_H */ | |
32 | ||
28fef30f MJ |
33 | LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status, |
34 | ||
35 | TP_PROTO(const struct rpc_task *task), | |
36 | ||
37 | TP_ARGS(task), | |
38 | ||
39 | TP_FIELDS( | |
40 | ctf_integer(unsigned int, task_id, task->tk_pid) | |
b6903d57 | 41 | ctf_integer(int, client_id, lttng_get_clid(task)) |
28fef30f MJ |
42 | ctf_integer(int, status, task->tk_status) |
43 | ) | |
44 | ) | |
45 | ||
46 | LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_call_status, | |
47 | TP_PROTO(const struct rpc_task *task), | |
48 | ||
49 | TP_ARGS(task) | |
50 | ) | |
51 | ||
52 | LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_bind_status, | |
53 | TP_PROTO(const struct rpc_task *task), | |
54 | ||
55 | TP_ARGS(task) | |
56 | ) | |
b87700e3 | 57 | |
28fef30f MJ |
58 | LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_connect_status, |
59 | TP_PROTO(const struct rpc_task *task), | |
60 | ||
61 | TP_ARGS(task) | |
62 | ) | |
0f891764 | 63 | |
0f891764 MJ |
64 | LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running, |
65 | ||
66 | TP_PROTO(const struct rpc_task *task, const void *action), | |
67 | ||
68 | TP_ARGS(task, action), | |
69 | ||
70 | TP_FIELDS( | |
b9dbdfe2 | 71 | ctf_integer(unsigned int, task_id, task->tk_pid) |
b6903d57 | 72 | ctf_integer(int, client_id, lttng_get_clid(task)) |
0f891764 MJ |
73 | ctf_integer_hex(const void *, action, action) |
74 | ctf_integer(unsigned long, runstate, task->tk_runstate) | |
75 | ctf_integer(int, status, task->tk_status) | |
76 | ctf_integer(unsigned short, flags, task->tk_flags) | |
77 | ) | |
78 | ) | |
79 | ||
80 | LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_begin, | |
81 | ||
82 | TP_PROTO(const struct rpc_task *task, const void *action), | |
83 | ||
84 | TP_ARGS(task, action) | |
85 | ) | |
86 | ||
87 | LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_run_action, | |
88 | ||
89 | TP_PROTO(const struct rpc_task *task, const void *action), | |
90 | ||
91 | TP_ARGS(task, action) | |
92 | ) | |
93 | ||
94 | LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_complete, | |
95 | ||
96 | TP_PROTO(const struct rpc_task *task, const void *action), | |
97 | ||
98 | TP_ARGS(task, action) | |
99 | ) | |
100 | ||
101 | LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_queued, | |
102 | ||
103 | TP_PROTO(const struct rpc_task *task, const struct rpc_wait_queue *q), | |
104 | ||
105 | TP_ARGS(task, q), | |
106 | ||
107 | TP_FIELDS( | |
b9dbdfe2 | 108 | ctf_integer(unsigned int, task_id, task->tk_pid) |
b6903d57 | 109 | ctf_integer(int, client_id, lttng_get_clid(task)) |
0f891764 MJ |
110 | ctf_integer(unsigned long, timeout, task->tk_timeout) |
111 | ctf_integer(unsigned long, runstate, task->tk_runstate) | |
112 | ctf_integer(int, status, task->tk_status) | |
113 | ctf_integer(unsigned short, flags, task->tk_flags) | |
114 | ctf_string(q_name, rpc_qname(q)) | |
115 | ) | |
116 | ) | |
117 | ||
118 | LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_sleep, | |
119 | ||
120 | TP_PROTO(const struct rpc_task *task, const struct rpc_wait_queue *q), | |
121 | ||
122 | TP_ARGS(task, q) | |
123 | ) | |
124 | ||
125 | LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_wakeup, | |
126 | ||
127 | TP_PROTO(const struct rpc_task *task, const struct rpc_wait_queue *q), | |
128 | ||
129 | TP_ARGS(task, q) | |
130 | ) | |
131 | ||
9bbf98da | 132 | #endif /* LTTNG_TRACE_RPC_H */ |
b87700e3 | 133 | |
6ec43db8 | 134 | #include <probes/define_trace.h> |