diff options
Diffstat (limited to 'include/trace/events/random.h')
-rw-r--r-- | include/trace/events/random.h | 183 |
1 files changed, 182 insertions, 1 deletions
diff --git a/include/trace/events/random.h b/include/trace/events/random.h index 422df19de732..805af6db41cc 100644 --- a/include/trace/events/random.h +++ b/include/trace/events/random.h | |||
@@ -7,6 +7,25 @@ | |||
7 | #include <linux/writeback.h> | 7 | #include <linux/writeback.h> |
8 | #include <linux/tracepoint.h> | 8 | #include <linux/tracepoint.h> |
9 | 9 | ||
10 | TRACE_EVENT(add_device_randomness, | ||
11 | TP_PROTO(int bytes, unsigned long IP), | ||
12 | |||
13 | TP_ARGS(bytes, IP), | ||
14 | |||
15 | TP_STRUCT__entry( | ||
16 | __field( int, bytes ) | ||
17 | __field(unsigned long, IP ) | ||
18 | ), | ||
19 | |||
20 | TP_fast_assign( | ||
21 | __entry->bytes = bytes; | ||
22 | __entry->IP = IP; | ||
23 | ), | ||
24 | |||
25 | TP_printk("bytes %d caller %pF", | ||
26 | __entry->bytes, (void *)__entry->IP) | ||
27 | ); | ||
28 | |||
10 | DECLARE_EVENT_CLASS(random__mix_pool_bytes, | 29 | DECLARE_EVENT_CLASS(random__mix_pool_bytes, |
11 | TP_PROTO(const char *pool_name, int bytes, unsigned long IP), | 30 | TP_PROTO(const char *pool_name, int bytes, unsigned long IP), |
12 | 31 | ||
@@ -68,7 +87,112 @@ TRACE_EVENT(credit_entropy_bits, | |||
68 | (void *)__entry->IP) | 87 | (void *)__entry->IP) |
69 | ); | 88 | ); |
70 | 89 | ||
71 | TRACE_EVENT(get_random_bytes, | 90 | TRACE_EVENT(push_to_pool, |
91 | TP_PROTO(const char *pool_name, int pool_bits, int input_bits), | ||
92 | |||
93 | TP_ARGS(pool_name, pool_bits, input_bits), | ||
94 | |||
95 | TP_STRUCT__entry( | ||
96 | __field( const char *, pool_name ) | ||
97 | __field( int, pool_bits ) | ||
98 | __field( int, input_bits ) | ||
99 | ), | ||
100 | |||
101 | TP_fast_assign( | ||
102 | __entry->pool_name = pool_name; | ||
103 | __entry->pool_bits = pool_bits; | ||
104 | __entry->input_bits = input_bits; | ||
105 | ), | ||
106 | |||
107 | TP_printk("%s: pool_bits %d input_pool_bits %d", | ||
108 | __entry->pool_name, __entry->pool_bits, | ||
109 | __entry->input_bits) | ||
110 | ); | ||
111 | |||
112 | TRACE_EVENT(debit_entropy, | ||
113 | TP_PROTO(const char *pool_name, int debit_bits), | ||
114 | |||
115 | TP_ARGS(pool_name, debit_bits), | ||
116 | |||
117 | TP_STRUCT__entry( | ||
118 | __field( const char *, pool_name ) | ||
119 | __field( int, debit_bits ) | ||
120 | ), | ||
121 | |||
122 | TP_fast_assign( | ||
123 | __entry->pool_name = pool_name; | ||
124 | __entry->debit_bits = debit_bits; | ||
125 | ), | ||
126 | |||
127 | TP_printk("%s: debit_bits %d", __entry->pool_name, | ||
128 | __entry->debit_bits) | ||
129 | ); | ||
130 | |||
131 | TRACE_EVENT(add_input_randomness, | ||
132 | TP_PROTO(int input_bits), | ||
133 | |||
134 | TP_ARGS(input_bits), | ||
135 | |||
136 | TP_STRUCT__entry( | ||
137 | __field( int, input_bits ) | ||
138 | ), | ||
139 | |||
140 | TP_fast_assign( | ||
141 | __entry->input_bits = input_bits; | ||
142 | ), | ||
143 | |||
144 | TP_printk("input_pool_bits %d", __entry->input_bits) | ||
145 | ); | ||
146 | |||
147 | TRACE_EVENT(add_disk_randomness, | ||
148 | TP_PROTO(dev_t dev, int input_bits), | ||
149 | |||
150 | TP_ARGS(dev, input_bits), | ||
151 | |||
152 | TP_STRUCT__entry( | ||
153 | __field( dev_t, dev ) | ||
154 | __field( int, input_bits ) | ||
155 | ), | ||
156 | |||
157 | TP_fast_assign( | ||
158 | __entry->dev = dev; | ||
159 | __entry->input_bits = input_bits; | ||
160 | ), | ||
161 | |||
162 | TP_printk("dev %d,%d input_pool_bits %d", MAJOR(__entry->dev), | ||
163 | MINOR(__entry->dev), __entry->input_bits) | ||
164 | ); | ||
165 | |||
166 | TRACE_EVENT(xfer_secondary_pool, | ||
167 | TP_PROTO(const char *pool_name, int xfer_bits, int request_bits, | ||
168 | int pool_entropy, int input_entropy), | ||
169 | |||
170 | TP_ARGS(pool_name, xfer_bits, request_bits, pool_entropy, | ||
171 | input_entropy), | ||
172 | |||
173 | TP_STRUCT__entry( | ||
174 | __field( const char *, pool_name ) | ||
175 | __field( int, xfer_bits ) | ||
176 | __field( int, request_bits ) | ||
177 | __field( int, pool_entropy ) | ||
178 | __field( int, input_entropy ) | ||
179 | ), | ||
180 | |||
181 | TP_fast_assign( | ||
182 | __entry->pool_name = pool_name; | ||
183 | __entry->xfer_bits = xfer_bits; | ||
184 | __entry->request_bits = request_bits; | ||
185 | __entry->pool_entropy = pool_entropy; | ||
186 | __entry->input_entropy = input_entropy; | ||
187 | ), | ||
188 | |||
189 | TP_printk("pool %s xfer_bits %d request_bits %d pool_entropy %d " | ||
190 | "input_entropy %d", __entry->pool_name, __entry->xfer_bits, | ||
191 | __entry->request_bits, __entry->pool_entropy, | ||
192 | __entry->input_entropy) | ||
193 | ); | ||
194 | |||
195 | DECLARE_EVENT_CLASS(random__get_random_bytes, | ||
72 | TP_PROTO(int nbytes, unsigned long IP), | 196 | TP_PROTO(int nbytes, unsigned long IP), |
73 | 197 | ||
74 | TP_ARGS(nbytes, IP), | 198 | TP_ARGS(nbytes, IP), |
@@ -86,6 +210,18 @@ TRACE_EVENT(get_random_bytes, | |||
86 | TP_printk("nbytes %d caller %pF", __entry->nbytes, (void *)__entry->IP) | 210 | TP_printk("nbytes %d caller %pF", __entry->nbytes, (void *)__entry->IP) |
87 | ); | 211 | ); |
88 | 212 | ||
213 | DEFINE_EVENT(random__get_random_bytes, get_random_bytes, | ||
214 | TP_PROTO(int nbytes, unsigned long IP), | ||
215 | |||
216 | TP_ARGS(nbytes, IP) | ||
217 | ); | ||
218 | |||
219 | DEFINE_EVENT(random__get_random_bytes, get_random_bytes_arch, | ||
220 | TP_PROTO(int nbytes, unsigned long IP), | ||
221 | |||
222 | TP_ARGS(nbytes, IP) | ||
223 | ); | ||
224 | |||
89 | DECLARE_EVENT_CLASS(random__extract_entropy, | 225 | DECLARE_EVENT_CLASS(random__extract_entropy, |
90 | TP_PROTO(const char *pool_name, int nbytes, int entropy_count, | 226 | TP_PROTO(const char *pool_name, int nbytes, int entropy_count, |
91 | unsigned long IP), | 227 | unsigned long IP), |
@@ -126,7 +262,52 @@ DEFINE_EVENT(random__extract_entropy, extract_entropy_user, | |||
126 | TP_ARGS(pool_name, nbytes, entropy_count, IP) | 262 | TP_ARGS(pool_name, nbytes, entropy_count, IP) |
127 | ); | 263 | ); |
128 | 264 | ||
265 | TRACE_EVENT(random_read, | ||
266 | TP_PROTO(int got_bits, int need_bits, int pool_left, int input_left), | ||
267 | |||
268 | TP_ARGS(got_bits, need_bits, pool_left, input_left), | ||
269 | |||
270 | TP_STRUCT__entry( | ||
271 | __field( int, got_bits ) | ||
272 | __field( int, need_bits ) | ||
273 | __field( int, pool_left ) | ||
274 | __field( int, input_left ) | ||
275 | ), | ||
276 | |||
277 | TP_fast_assign( | ||
278 | __entry->got_bits = got_bits; | ||
279 | __entry->need_bits = need_bits; | ||
280 | __entry->pool_left = pool_left; | ||
281 | __entry->input_left = input_left; | ||
282 | ), | ||
283 | |||
284 | TP_printk("got_bits %d still_needed_bits %d " | ||
285 | "blocking_pool_entropy_left %d input_entropy_left %d", | ||
286 | __entry->got_bits, __entry->got_bits, __entry->pool_left, | ||
287 | __entry->input_left) | ||
288 | ); | ||
289 | |||
290 | TRACE_EVENT(urandom_read, | ||
291 | TP_PROTO(int got_bits, int pool_left, int input_left), | ||
292 | |||
293 | TP_ARGS(got_bits, pool_left, input_left), | ||
294 | |||
295 | TP_STRUCT__entry( | ||
296 | __field( int, got_bits ) | ||
297 | __field( int, pool_left ) | ||
298 | __field( int, input_left ) | ||
299 | ), | ||
300 | |||
301 | TP_fast_assign( | ||
302 | __entry->got_bits = got_bits; | ||
303 | __entry->pool_left = pool_left; | ||
304 | __entry->input_left = input_left; | ||
305 | ), | ||
129 | 306 | ||
307 | TP_printk("got_bits %d nonblocking_pool_entropy_left %d " | ||
308 | "input_entropy_left %d", __entry->got_bits, | ||
309 | __entry->pool_left, __entry->input_left) | ||
310 | ); | ||
130 | 311 | ||
131 | #endif /* _TRACE_RANDOM_H */ | 312 | #endif /* _TRACE_RANDOM_H */ |
132 | 313 | ||