1 From 98b7729a776bc5babb39345eeeba3cd1f60d8c9a Mon Sep 17 00:00:00 2001
2 From: Michael Jeanson <mjeanson@efficios.com>
3 Date: Wed, 26 Jan 2022 14:53:41 -0500
4 Subject: [PATCH 5/7] fix: random: rather than entropy_store abstraction, use
9 commit 90ed1e67e896cc8040a523f8428fc02f9b164394
10 Author: Jason A. Donenfeld <Jason@zx2c4.com>
11 Date: Wed Jan 12 17:18:08 2022 +0100
13 random: rather than entropy_store abstraction, use global
15 Originally, the RNG used several pools, so having things abstracted out
16 over a generic entropy_store object made sense. These days, there's only
17 one input pool, and then an uneven mix of usage via the abstraction and
18 usage via &input_pool. Rather than this uneasy mixture, just get rid of
19 the abstraction entirely and have things always use the global. This
20 simplifies the code and makes reading it a bit easier.
22 Upstream-Status: Backport [lttng-modules commit 98b7729a776bc5babb39345eeeba3cd1f60d8c9a]
24 Change-Id: I1a2a14d7b6e69a047804e1e91e00fe002f757431
25 Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
26 Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
28 include/instrumentation/events/random.h | 81 ++++++++++++++++++++++++-
29 1 file changed, 80 insertions(+), 1 deletion(-)
31 diff --git a/include/instrumentation/events/random.h b/include/instrumentation/events/random.h
32 index ed05d26a..8cc88adb 100644
33 --- a/include/instrumentation/events/random.h
34 +++ b/include/instrumentation/events/random.h
36 #include <lttng/tracepoint-event.h>
37 #include <linux/writeback.h>
39 +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
40 +LTTNG_TRACEPOINT_EVENT_CLASS(random__mix_pool_bytes,
41 + TP_PROTO(int bytes, unsigned long IP),
46 + ctf_integer(int, bytes, bytes)
47 + ctf_integer_hex(unsigned long, IP, IP)
51 +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__mix_pool_bytes, mix_pool_bytes,
53 + random_mix_pool_bytes,
55 + TP_PROTO(int bytes, unsigned long IP),
60 +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__mix_pool_bytes, mix_pool_bytes_nolock,
62 + random_mix_pool_bytes_nolock,
64 + TP_PROTO(int bytes, unsigned long IP),
69 LTTNG_TRACEPOINT_EVENT_CLASS(random__mix_pool_bytes,
70 TP_PROTO(const char *pool_name, int bytes, unsigned long IP),
72 @@ -37,8 +67,24 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__mix_pool_bytes, mix_pool_bytes_noloc
74 TP_ARGS(pool_name, bytes, IP)
78 -#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,2,0))
79 +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
80 +LTTNG_TRACEPOINT_EVENT_MAP(credit_entropy_bits,
82 + random_credit_entropy_bits,
84 + TP_PROTO(int bits, int entropy_count, unsigned long IP),
86 + TP_ARGS(bits, entropy_count, IP),
89 + ctf_integer(int, bits, bits)
90 + ctf_integer(int, entropy_count, entropy_count)
91 + ctf_integer_hex(unsigned long, IP, IP)
94 +#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,2,0))
95 LTTNG_TRACEPOINT_EVENT_MAP(credit_entropy_bits,
97 random_credit_entropy_bits,
98 @@ -89,6 +135,38 @@ LTTNG_TRACEPOINT_EVENT_MAP(get_random_bytes,
102 +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
103 +LTTNG_TRACEPOINT_EVENT_CLASS(random__extract_entropy,
104 + TP_PROTO(int nbytes, int entropy_count, unsigned long IP),
106 + TP_ARGS(nbytes, entropy_count, IP),
109 + ctf_integer(int, nbytes, nbytes)
110 + ctf_integer(int, entropy_count, entropy_count)
111 + ctf_integer_hex(unsigned long, IP, IP)
116 +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__extract_entropy, extract_entropy,
118 + random_extract_entropy,
120 + TP_PROTO(int nbytes, int entropy_count, unsigned long IP),
122 + TP_ARGS(nbytes, entropy_count, IP)
125 +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__extract_entropy, extract_entropy_user,
127 + random_extract_entropy_user,
129 + TP_PROTO(int nbytes, int entropy_count, unsigned long IP),
131 + TP_ARGS(nbytes, entropy_count, IP)
134 LTTNG_TRACEPOINT_EVENT_CLASS(random__extract_entropy,
135 TP_PROTO(const char *pool_name, int nbytes, int entropy_count,
137 @@ -123,6 +201,7 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__extract_entropy, extract_entropy_use
139 TP_ARGS(pool_name, nbytes, entropy_count, IP)