Update README.md for supported kernel
[lttng-modules.git] / instrumentation / events / lttng-module / rpc.h
CommitLineData
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
15static inline
16int 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
33LTTNG_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
46LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_call_status,
47 TP_PROTO(const struct rpc_task *task),
48
49 TP_ARGS(task)
50)
51
52LTTNG_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
58LTTNG_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
64LTTNG_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
80LTTNG_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
87LTTNG_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
94LTTNG_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
101LTTNG_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
118LTTNG_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
125LTTNG_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>
This page took 0.040104 seconds and 4 git commands to generate.