1 /* SPDX-License-Identifier: GPL-2.0-only */
3 #define TRACE_SYSTEM random
5 #if !defined(LTTNG_TRACE_RANDOM_H) || defined(TRACE_HEADER_MULTI_READ)
6 #define LTTNG_TRACE_RANDOM_H
8 #include <lttng/tracepoint-event.h>
9 #include <linux/writeback.h>
11 LTTNG_TRACEPOINT_EVENT_MAP(add_device_randomness
,
13 random_add_device_randomness
,
15 TP_PROTO(int bytes
, unsigned long IP
),
20 ctf_integer(int, bytes
, bytes
)
21 ctf_integer_hex(unsigned long, IP
, IP
)
25 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
26 LTTNG_TRACEPOINT_EVENT_CLASS(random__mix_pool_bytes
,
27 TP_PROTO(int bytes
, unsigned long IP
),
32 ctf_integer(int, bytes
, bytes
)
33 ctf_integer_hex(unsigned long, IP
, IP
)
37 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__mix_pool_bytes
, mix_pool_bytes
,
39 random_mix_pool_bytes
,
41 TP_PROTO(int bytes
, unsigned long IP
),
46 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__mix_pool_bytes
, mix_pool_bytes_nolock
,
48 random_mix_pool_bytes_nolock
,
50 TP_PROTO(int bytes
, unsigned long IP
),
55 LTTNG_TRACEPOINT_EVENT_CLASS(random__mix_pool_bytes
,
56 TP_PROTO(const char *pool_name
, int bytes
, unsigned long IP
),
58 TP_ARGS(pool_name
, bytes
, IP
),
61 ctf_string(pool_name
, pool_name
)
62 ctf_integer(int, bytes
, bytes
)
63 ctf_integer_hex(unsigned long, IP
, IP
)
67 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__mix_pool_bytes
, mix_pool_bytes
,
69 random_mix_pool_bytes
,
71 TP_PROTO(const char *pool_name
, int bytes
, unsigned long IP
),
73 TP_ARGS(pool_name
, bytes
, IP
)
76 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__mix_pool_bytes
, mix_pool_bytes_nolock
,
78 random_mix_pool_bytes_nolock
,
80 TP_PROTO(const char *pool_name
, int bytes
, unsigned long IP
),
82 TP_ARGS(pool_name
, bytes
, IP
)
86 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
87 LTTNG_TRACEPOINT_EVENT_MAP(credit_entropy_bits
,
89 random_credit_entropy_bits
,
91 TP_PROTO(int bits
, int entropy_count
, unsigned long IP
),
93 TP_ARGS(bits
, entropy_count
, IP
),
96 ctf_integer(int, bits
, bits
)
97 ctf_integer(int, entropy_count
, entropy_count
)
98 ctf_integer_hex(unsigned long, IP
, IP
)
101 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,2,0))
102 LTTNG_TRACEPOINT_EVENT_MAP(credit_entropy_bits
,
104 random_credit_entropy_bits
,
106 TP_PROTO(const char *pool_name
, int bits
, int entropy_count
,
109 TP_ARGS(pool_name
, bits
, entropy_count
, IP
),
112 ctf_string(pool_name
, pool_name
)
113 ctf_integer(int, bits
, bits
)
114 ctf_integer(int, entropy_count
, entropy_count
)
115 ctf_integer_hex(unsigned long, IP
, IP
)
119 LTTNG_TRACEPOINT_EVENT_MAP(credit_entropy_bits
,
121 random_credit_entropy_bits
,
123 TP_PROTO(const char *pool_name
, int bits
, int entropy_count
,
124 int entropy_total
, unsigned long IP
),
126 TP_ARGS(pool_name
, bits
, entropy_count
, entropy_total
, IP
),
129 ctf_string(pool_name
, pool_name
)
130 ctf_integer(int, bits
, bits
)
131 ctf_integer(int, entropy_count
, entropy_count
)
132 ctf_integer(int, entropy_total
, entropy_total
)
133 ctf_integer_hex(unsigned long, IP
, IP
)
138 LTTNG_TRACEPOINT_EVENT_MAP(push_to_pool
,
142 TP_PROTO(const char *pool_name
, int pool_bits
, int input_bits
),
144 TP_ARGS(pool_name
, pool_bits
, input_bits
),
147 ctf_string(pool_name
, pool_name
)
148 ctf_integer(int, pool_bits
, pool_bits
)
149 ctf_integer(int, input_bits
, input_bits
)
153 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
154 LTTNG_TRACEPOINT_EVENT_MAP(debit_entropy
,
156 random_debit_entropy
,
158 TP_PROTO(int debit_bits
),
163 ctf_integer(int, debit_bits
, debit_bits
)
167 LTTNG_TRACEPOINT_EVENT_MAP(debit_entropy
,
169 random_debit_entropy
,
171 TP_PROTO(const char *pool_name
, int debit_bits
),
173 TP_ARGS(pool_name
, debit_bits
),
176 ctf_string(pool_name
, pool_name
)
177 ctf_integer(int, debit_bits
, debit_bits
)
182 LTTNG_TRACEPOINT_EVENT_MAP(add_input_randomness
,
184 random_add_input_randomness
,
186 TP_PROTO(int input_bits
),
191 ctf_integer(int, input_bits
, input_bits
)
195 LTTNG_TRACEPOINT_EVENT_MAP(add_disk_randomness
,
197 random_add_disk_randomness
,
199 TP_PROTO(dev_t dev
, int input_bits
),
201 TP_ARGS(dev
, input_bits
),
204 ctf_integer(dev_t
, dev
, dev
)
205 ctf_integer(int, input_bits
, input_bits
)
209 LTTNG_TRACEPOINT_EVENT_MAP(xfer_secondary_pool
,
211 random_xfer_secondary_pool
,
213 TP_PROTO(const char *pool_name
, int xfer_bits
, int request_bits
,
214 int pool_entropy
, int input_entropy
),
216 TP_ARGS(pool_name
, xfer_bits
, request_bits
, pool_entropy
,
220 ctf_string(pool_name
, pool_name
)
221 ctf_integer(int, xfer_bits
, xfer_bits
)
222 ctf_integer(int, request_bits
, request_bits
)
223 ctf_integer(int, pool_entropy
, pool_entropy
)
224 ctf_integer(int, input_entropy
, input_entropy
)
228 LTTNG_TRACEPOINT_EVENT_CLASS(random__get_random_bytes
,
230 TP_PROTO(int nbytes
, unsigned long IP
),
235 ctf_integer(int, nbytes
, nbytes
)
236 ctf_integer_hex(unsigned long, IP
, IP
)
240 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__get_random_bytes
, get_random_bytes
,
242 random_get_random_bytes
,
244 TP_PROTO(int nbytes
, unsigned long IP
),
249 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__get_random_bytes
, get_random_bytes_arch
,
251 random_get_random_bytes_arch
,
253 TP_PROTO(int nbytes
, unsigned long IP
),
258 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
259 LTTNG_TRACEPOINT_EVENT_CLASS(random__extract_entropy
,
260 TP_PROTO(int nbytes
, int entropy_count
, unsigned long IP
),
262 TP_ARGS(nbytes
, entropy_count
, IP
),
265 ctf_integer(int, nbytes
, nbytes
)
266 ctf_integer(int, entropy_count
, entropy_count
)
267 ctf_integer_hex(unsigned long, IP
, IP
)
272 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__extract_entropy
, extract_entropy
,
274 random_extract_entropy
,
276 TP_PROTO(int nbytes
, int entropy_count
, unsigned long IP
),
278 TP_ARGS(nbytes
, entropy_count
, IP
)
281 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__extract_entropy
, extract_entropy_user
,
283 random_extract_entropy_user
,
285 TP_PROTO(int nbytes
, int entropy_count
, unsigned long IP
),
287 TP_ARGS(nbytes
, entropy_count
, IP
)
290 LTTNG_TRACEPOINT_EVENT_CLASS(random__extract_entropy
,
291 TP_PROTO(const char *pool_name
, int nbytes
, int entropy_count
,
294 TP_ARGS(pool_name
, nbytes
, entropy_count
, IP
),
297 ctf_string(pool_name
, pool_name
)
298 ctf_integer(int, nbytes
, nbytes
)
299 ctf_integer(int, entropy_count
, entropy_count
)
300 ctf_integer_hex(unsigned long, IP
, IP
)
305 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__extract_entropy
, extract_entropy
,
307 random_extract_entropy
,
309 TP_PROTO(const char *pool_name
, int nbytes
, int entropy_count
,
312 TP_ARGS(pool_name
, nbytes
, entropy_count
, IP
)
315 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__extract_entropy
, extract_entropy_user
,
317 random_extract_entropy_user
,
319 TP_PROTO(const char *pool_name
, int nbytes
, int entropy_count
,
322 TP_ARGS(pool_name
, nbytes
, entropy_count
, IP
)
326 LTTNG_TRACEPOINT_EVENT_MAP(random_read
,
330 TP_PROTO(int got_bits
, int need_bits
, int pool_left
, int input_left
),
332 TP_ARGS(got_bits
, need_bits
, pool_left
, input_left
),
335 ctf_integer(int, got_bits
, got_bits
)
336 ctf_integer(int, need_bits
, need_bits
)
337 ctf_integer(int, pool_left
, pool_left
)
338 ctf_integer(int, input_left
, input_left
)
342 LTTNG_TRACEPOINT_EVENT_MAP(urandom_read
,
346 TP_PROTO(int got_bits
, int pool_left
, int input_left
),
348 TP_ARGS(got_bits
, pool_left
, input_left
),
351 ctf_integer(int, got_bits
, got_bits
)
352 ctf_integer(int, pool_left
, pool_left
)
353 ctf_integer(int, input_left
, input_left
)
357 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,9,0))
358 LTTNG_TRACEPOINT_EVENT_MAP(prandom_u32
,
362 TP_PROTO(unsigned int ret
),
367 ctf_integer(unsigned int, ret
, ret
)
373 #endif /* LTTNG_TRACE_RANDOM_H */
375 /* This part must be outside protection */
376 #include <lttng/define_trace.h>