Comment 0 for bug 1775391

bugproxy (bugproxy) wrote :

Description: kernel: Fix arch random implementation
Symptom: arch_get_random_seed_long() invocations may slow down the
              interrupt handling on heavy interrupt producing loads.
Problem: The existing random device driver calls
              arch_get_random_seed_long() in interrupt context. The
              current implementation of this function uses the
              PRNO(TRNG) instruction to provide good entropy. This
              instruction is relatively slow and expensive and may
              slow down the capacity of interrupts which can be handled
              per cpu.
Solution: This fix reworks the arch_get_random_seed implementation.
              It introduces a buffer concept to decouple the delivery
              of random data via arch_get_random_seed*() from the
              generation of new random bytes and so does not limit
              the interrupt handling per cpu any more.
Reproduction: Systems with heavy irq load show performance decrease.
Component: kernel

Upstream commit(s): kernel 4.18