random: remove ifdef'd out interrupt bench
authorJason A. Donenfeld <Jason@zx2c4.com>
Thu, 10 Feb 2022 15:35:24 +0000 (16:35 +0100)
committerJason A. Donenfeld <Jason@zx2c4.com>
Mon, 21 Feb 2022 20:14:00 +0000 (21:14 +0100)
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>
Documentation/admin-guide/sysctl/kernel.rst
drivers/char/random.c

index d3c6d9a501a9c296b1698dbba7723954972cf853..5dd660aac0aee7de70feb32e0504e71ad149a26c 100644 (file)
@@ -1041,15 +1041,6 @@ This is a directory, with the following entries:
   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
 ==================
index c27ebf70738093ec4e819f07ff2c8fbe92711b64..35c440a0d83cfcc613443f14a3c73eae0f16d8a9 100644 (file)
 #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. */
@@ -808,27 +806,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;
@@ -865,7 +842,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 &&
@@ -1574,22 +1550,6 @@ static 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
        { }
 };