SRU request submitted: https://lists.ubuntu.com/archives/kernel-team/2018-June/093312.html
** Also affects: linux (Ubuntu Bionic) Importance: Undecided Status: New ** Changed in: linux (Ubuntu Bionic) Status: New => In Progress ** Changed in: linux (Ubuntu Bionic) Importance: Undecided => High ** Changed in: linux (Ubuntu Bionic) Assignee: (unassigned) => Joseph Salisbury (jsalisbury) ** Description changed: + == SRU Justification == + IBM reports that arch_get_random_seed_long() invocations may slow down the + interrupt handling on heavy interrupt producing loads. + + 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. + + 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. + + == Fix == + 966f53e750ae ("s390/archrandom: Rework arch random implementation.") + + == Regression Potential == + Low. This fix is limited to s390. + + == Test Case == + Verified upfront by IBM during upstream integration + + + Description: kernel: Fix arch random implementation Symptom: arch_get_random_seed_long() invocations may slow down the - interrupt handling on heavy interrupt producing loads. + 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. + 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. + 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 966f53e750aedc5f59f9ccae6bbfb8f671c7c842 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1775391 Title: kernel: Fix arch random implementation To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu-z-systems/+bug/1775391/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs