Line data Source code
1 : /* SPDX-License-Identifier: GPL-2.0 */
2 : #undef TRACE_SYSTEM
3 : #define TRACE_SYSTEM random
4 :
5 : #if !defined(_TRACE_RANDOM_H) || defined(TRACE_HEADER_MULTI_READ)
6 : #define _TRACE_RANDOM_H
7 :
8 : #include <linux/writeback.h>
9 : #include <linux/tracepoint.h>
10 :
11 3684 : TRACE_EVENT(add_device_randomness,
12 : TP_PROTO(int bytes, unsigned long IP),
13 :
14 : TP_ARGS(bytes, IP),
15 :
16 : TP_STRUCT__entry(
17 : __field( int, bytes )
18 : __field(unsigned long, IP )
19 : ),
20 :
21 : TP_fast_assign(
22 : __entry->bytes = bytes;
23 : __entry->IP = IP;
24 : ),
25 :
26 : TP_printk("bytes %d caller %pS",
27 : __entry->bytes, (void *)__entry->IP)
28 : );
29 :
30 0 : DECLARE_EVENT_CLASS(random__mix_pool_bytes,
31 : TP_PROTO(const char *pool_name, int bytes, unsigned long IP),
32 :
33 : TP_ARGS(pool_name, bytes, IP),
34 :
35 : TP_STRUCT__entry(
36 : __field( const char *, pool_name )
37 : __field( int, bytes )
38 : __field(unsigned long, IP )
39 : ),
40 :
41 : TP_fast_assign(
42 : __entry->pool_name = pool_name;
43 : __entry->bytes = bytes;
44 : __entry->IP = IP;
45 : ),
46 :
47 : TP_printk("%s pool: bytes %d caller %pS",
48 : __entry->pool_name, __entry->bytes, (void *)__entry->IP)
49 : );
50 :
51 150 : DEFINE_EVENT(random__mix_pool_bytes, mix_pool_bytes,
52 : TP_PROTO(const char *pool_name, int bytes, unsigned long IP),
53 :
54 : TP_ARGS(pool_name, bytes, IP)
55 : );
56 :
57 212 : DEFINE_EVENT(random__mix_pool_bytes, mix_pool_bytes_nolock,
58 : TP_PROTO(const char *pool_name, int bytes, unsigned long IP),
59 :
60 : TP_ARGS(pool_name, bytes, IP)
61 : );
62 :
63 202 : TRACE_EVENT(credit_entropy_bits,
64 : TP_PROTO(const char *pool_name, int bits, int entropy_count,
65 : unsigned long IP),
66 :
67 : TP_ARGS(pool_name, bits, entropy_count, IP),
68 :
69 : TP_STRUCT__entry(
70 : __field( const char *, pool_name )
71 : __field( int, bits )
72 : __field( int, entropy_count )
73 : __field(unsigned long, IP )
74 : ),
75 :
76 : TP_fast_assign(
77 : __entry->pool_name = pool_name;
78 : __entry->bits = bits;
79 : __entry->entropy_count = entropy_count;
80 : __entry->IP = IP;
81 : ),
82 :
83 : TP_printk("%s pool: bits %d entropy_count %d caller %pS",
84 : __entry->pool_name, __entry->bits,
85 : __entry->entropy_count, (void *)__entry->IP)
86 : );
87 :
88 0 : TRACE_EVENT(push_to_pool,
89 : TP_PROTO(const char *pool_name, int pool_bits, int input_bits),
90 :
91 : TP_ARGS(pool_name, pool_bits, input_bits),
92 :
93 : TP_STRUCT__entry(
94 : __field( const char *, pool_name )
95 : __field( int, pool_bits )
96 : __field( int, input_bits )
97 : ),
98 :
99 : TP_fast_assign(
100 : __entry->pool_name = pool_name;
101 : __entry->pool_bits = pool_bits;
102 : __entry->input_bits = input_bits;
103 : ),
104 :
105 : TP_printk("%s: pool_bits %d input_pool_bits %d",
106 : __entry->pool_name, __entry->pool_bits,
107 : __entry->input_bits)
108 : );
109 :
110 6 : TRACE_EVENT(debit_entropy,
111 : TP_PROTO(const char *pool_name, int debit_bits),
112 :
113 : TP_ARGS(pool_name, debit_bits),
114 :
115 : TP_STRUCT__entry(
116 : __field( const char *, pool_name )
117 : __field( int, debit_bits )
118 : ),
119 :
120 : TP_fast_assign(
121 : __entry->pool_name = pool_name;
122 : __entry->debit_bits = debit_bits;
123 : ),
124 :
125 : TP_printk("%s: debit_bits %d", __entry->pool_name,
126 : __entry->debit_bits)
127 : );
128 :
129 0 : TRACE_EVENT(add_input_randomness,
130 : TP_PROTO(int input_bits),
131 :
132 : TP_ARGS(input_bits),
133 :
134 : TP_STRUCT__entry(
135 : __field( int, input_bits )
136 : ),
137 :
138 : TP_fast_assign(
139 : __entry->input_bits = input_bits;
140 : ),
141 :
142 : TP_printk("input_pool_bits %d", __entry->input_bits)
143 : );
144 :
145 0 : TRACE_EVENT(add_disk_randomness,
146 : TP_PROTO(dev_t dev, int input_bits),
147 :
148 : TP_ARGS(dev, input_bits),
149 :
150 : TP_STRUCT__entry(
151 : __field( dev_t, dev )
152 : __field( int, input_bits )
153 : ),
154 :
155 : TP_fast_assign(
156 : __entry->dev = dev;
157 : __entry->input_bits = input_bits;
158 : ),
159 :
160 : TP_printk("dev %d,%d input_pool_bits %d", MAJOR(__entry->dev),
161 : MINOR(__entry->dev), __entry->input_bits)
162 : );
163 :
164 0 : TRACE_EVENT(xfer_secondary_pool,
165 : TP_PROTO(const char *pool_name, int xfer_bits, int request_bits,
166 : int pool_entropy, int input_entropy),
167 :
168 : TP_ARGS(pool_name, xfer_bits, request_bits, pool_entropy,
169 : input_entropy),
170 :
171 : TP_STRUCT__entry(
172 : __field( const char *, pool_name )
173 : __field( int, xfer_bits )
174 : __field( int, request_bits )
175 : __field( int, pool_entropy )
176 : __field( int, input_entropy )
177 : ),
178 :
179 : TP_fast_assign(
180 : __entry->pool_name = pool_name;
181 : __entry->xfer_bits = xfer_bits;
182 : __entry->request_bits = request_bits;
183 : __entry->pool_entropy = pool_entropy;
184 : __entry->input_entropy = input_entropy;
185 : ),
186 :
187 : TP_printk("pool %s xfer_bits %d request_bits %d pool_entropy %d "
188 : "input_entropy %d", __entry->pool_name, __entry->xfer_bits,
189 : __entry->request_bits, __entry->pool_entropy,
190 : __entry->input_entropy)
191 : );
192 :
193 0 : DECLARE_EVENT_CLASS(random__get_random_bytes,
194 : TP_PROTO(int nbytes, unsigned long IP),
195 :
196 : TP_ARGS(nbytes, IP),
197 :
198 : TP_STRUCT__entry(
199 : __field( int, nbytes )
200 : __field(unsigned long, IP )
201 : ),
202 :
203 : TP_fast_assign(
204 : __entry->nbytes = nbytes;
205 : __entry->IP = IP;
206 : ),
207 :
208 : TP_printk("nbytes %d caller %pS", __entry->nbytes, (void *)__entry->IP)
209 : );
210 :
211 3110 : DEFINE_EVENT(random__get_random_bytes, get_random_bytes,
212 : TP_PROTO(int nbytes, unsigned long IP),
213 :
214 : TP_ARGS(nbytes, IP)
215 : );
216 :
217 2 : DEFINE_EVENT(random__get_random_bytes, get_random_bytes_arch,
218 : TP_PROTO(int nbytes, unsigned long IP),
219 :
220 : TP_ARGS(nbytes, IP)
221 : );
222 :
223 0 : DECLARE_EVENT_CLASS(random__extract_entropy,
224 : TP_PROTO(const char *pool_name, int nbytes, int entropy_count,
225 : unsigned long IP),
226 :
227 : TP_ARGS(pool_name, nbytes, entropy_count, IP),
228 :
229 : TP_STRUCT__entry(
230 : __field( const char *, pool_name )
231 : __field( int, nbytes )
232 : __field( int, entropy_count )
233 : __field(unsigned long, IP )
234 : ),
235 :
236 : TP_fast_assign(
237 : __entry->pool_name = pool_name;
238 : __entry->nbytes = nbytes;
239 : __entry->entropy_count = entropy_count;
240 : __entry->IP = IP;
241 : ),
242 :
243 : TP_printk("%s pool: nbytes %d entropy_count %d caller %pS",
244 : __entry->pool_name, __entry->nbytes, __entry->entropy_count,
245 : (void *)__entry->IP)
246 : );
247 :
248 :
249 6 : DEFINE_EVENT(random__extract_entropy, extract_entropy,
250 : TP_PROTO(const char *pool_name, int nbytes, int entropy_count,
251 : unsigned long IP),
252 :
253 : TP_ARGS(pool_name, nbytes, entropy_count, IP)
254 : );
255 :
256 0 : DEFINE_EVENT(random__extract_entropy, extract_entropy_user,
257 : TP_PROTO(const char *pool_name, int nbytes, int entropy_count,
258 : unsigned long IP),
259 :
260 : TP_ARGS(pool_name, nbytes, entropy_count, IP)
261 : );
262 :
263 0 : TRACE_EVENT(random_read,
264 : TP_PROTO(int got_bits, int need_bits, int pool_left, int input_left),
265 :
266 : TP_ARGS(got_bits, need_bits, pool_left, input_left),
267 :
268 : TP_STRUCT__entry(
269 : __field( int, got_bits )
270 : __field( int, need_bits )
271 : __field( int, pool_left )
272 : __field( int, input_left )
273 : ),
274 :
275 : TP_fast_assign(
276 : __entry->got_bits = got_bits;
277 : __entry->need_bits = need_bits;
278 : __entry->pool_left = pool_left;
279 : __entry->input_left = input_left;
280 : ),
281 :
282 : TP_printk("got_bits %d still_needed_bits %d "
283 : "blocking_pool_entropy_left %d input_entropy_left %d",
284 : __entry->got_bits, __entry->got_bits, __entry->pool_left,
285 : __entry->input_left)
286 : );
287 :
288 40 : TRACE_EVENT(urandom_read,
289 : TP_PROTO(int got_bits, int pool_left, int input_left),
290 :
291 : TP_ARGS(got_bits, pool_left, input_left),
292 :
293 : TP_STRUCT__entry(
294 : __field( int, got_bits )
295 : __field( int, pool_left )
296 : __field( int, input_left )
297 : ),
298 :
299 : TP_fast_assign(
300 : __entry->got_bits = got_bits;
301 : __entry->pool_left = pool_left;
302 : __entry->input_left = input_left;
303 : ),
304 :
305 : TP_printk("got_bits %d nonblocking_pool_entropy_left %d "
306 : "input_entropy_left %d", __entry->got_bits,
307 : __entry->pool_left, __entry->input_left)
308 : );
309 :
310 377555 : TRACE_EVENT(prandom_u32,
311 :
312 : TP_PROTO(unsigned int ret),
313 :
314 : TP_ARGS(ret),
315 :
316 : TP_STRUCT__entry(
317 : __field( unsigned int, ret)
318 : ),
319 :
320 : TP_fast_assign(
321 : __entry->ret = ret;
322 : ),
323 :
324 : TP_printk("ret=%u" , __entry->ret)
325 : );
326 :
327 : #endif /* _TRACE_RANDOM_H */
328 :
329 : /* This part must be outside protection */
330 : #include <trace/define_trace.h>
|