| From foo@baz Thu Jun 16 06:59:24 PM CEST 2022 |
| From: "Jason A. Donenfeld" <Jason@zx2c4.com> |
| Date: Thu, 10 Feb 2022 16:35:24 +0100 |
| Subject: random: remove ifdef'd out interrupt bench |
| |
| From: "Jason A. Donenfeld" <Jason@zx2c4.com> |
| |
| commit 95e6060c20a7f5db60163274c5222a725ac118f9 upstream. |
| |
| With tools like kbench9000 giving more finegrained responses, and this |
| basically never having been used ever since it was initially added, |
| let's just get rid of this. There *is* still work to be done on the |
| interrupt handler, but this really isn't the way it's being developed. |
| |
| Cc: Theodore Ts'o <tytso@mit.edu> |
| Reviewed-by: Eric Biggers <ebiggers@google.com> |
| Reviewed-by: Dominik Brodowski <linux@dominikbrodowski.net> |
| Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| Documentation/sysctl/kernel.txt | 9 --------- |
| drivers/char/random.c | 40 ---------------------------------------- |
| 2 files changed, 49 deletions(-) |
| |
| --- a/Documentation/sysctl/kernel.txt |
| +++ b/Documentation/sysctl/kernel.txt |
| @@ -808,15 +808,6 @@ This is a directory, with the following |
| are woken up. This file is writable for compatibility purposes, but |
| writing to it has no effect on any RNG behavior. |
| |
| -If ``drivers/char/random.c`` is built with ``ADD_INTERRUPT_BENCH`` |
| -defined, these additional entries are present: |
| - |
| -* ``add_interrupt_avg_cycles``: the average number of cycles between |
| - interrupts used to feed the pool; |
| - |
| -* ``add_interrupt_avg_deviation``: the standard deviation seen on the |
| - number of cycles between interrupts used to feed the pool. |
| - |
| |
| randomize_va_space |
| ================== |
| --- a/drivers/char/random.c |
| +++ b/drivers/char/random.c |
| @@ -241,8 +241,6 @@ |
| #define CREATE_TRACE_POINTS |
| #include <trace/events/random.h> |
| |
| -/* #define ADD_INTERRUPT_BENCH */ |
| - |
| enum { |
| POOL_BITS = BLAKE2S_HASH_SIZE * 8, |
| POOL_MIN_BITS = POOL_BITS /* No point in settling for less. */ |
| @@ -858,27 +856,6 @@ EXPORT_SYMBOL_GPL(add_input_randomness); |
| |
| static DEFINE_PER_CPU(struct fast_pool, irq_randomness); |
| |
| -#ifdef ADD_INTERRUPT_BENCH |
| -static unsigned long avg_cycles, avg_deviation; |
| - |
| -#define AVG_SHIFT 8 /* Exponential average factor k=1/256 */ |
| -#define FIXED_1_2 (1 << (AVG_SHIFT - 1)) |
| - |
| -static void add_interrupt_bench(cycles_t start) |
| -{ |
| - long delta = random_get_entropy() - start; |
| - |
| - /* Use a weighted moving average */ |
| - delta = delta - ((avg_cycles + FIXED_1_2) >> AVG_SHIFT); |
| - avg_cycles += delta; |
| - /* And average deviation */ |
| - delta = abs(delta) - ((avg_deviation + FIXED_1_2) >> AVG_SHIFT); |
| - avg_deviation += delta; |
| -} |
| -#else |
| -#define add_interrupt_bench(x) |
| -#endif |
| - |
| static u32 get_reg(struct fast_pool *f, struct pt_regs *regs) |
| { |
| u32 *ptr = (u32 *)regs; |
| @@ -915,7 +892,6 @@ void add_interrupt_randomness(int irq) |
| (sizeof(ip) > 4) ? ip >> 32 : get_reg(fast_pool, regs); |
| |
| fast_mix(fast_pool); |
| - add_interrupt_bench(cycles); |
| |
| if (unlikely(crng_init == 0)) { |
| if (fast_pool->count >= 64 && |
| @@ -1623,22 +1599,6 @@ struct ctl_table random_table[] = { |
| .mode = 0444, |
| .proc_handler = proc_do_uuid, |
| }, |
| -#ifdef ADD_INTERRUPT_BENCH |
| - { |
| - .procname = "add_interrupt_avg_cycles", |
| - .data = &avg_cycles, |
| - .maxlen = sizeof(avg_cycles), |
| - .mode = 0444, |
| - .proc_handler = proc_doulongvec_minmax, |
| - }, |
| - { |
| - .procname = "add_interrupt_avg_deviation", |
| - .data = &avg_deviation, |
| - .maxlen = sizeof(avg_deviation), |
| - .mode = 0444, |
| - .proc_handler = proc_doulongvec_minmax, |
| - }, |
| -#endif |
| { } |
| }; |
| #endif /* CONFIG_SYSCTL */ |