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
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs