mbox series

[SRU,Bionic,0/1] s390/archrandom: Rework arch random implementation.

Message ID cover.1528314054.git.joseph.salisbury@canonical.com
Headers show
Series s390/archrandom: Rework arch random implementation. | expand

Message

Joseph Salisbury June 13, 2018, 4:04 p.m. UTC
BugLink: http://bugs.launchpad.net/bugs/1775391

== 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

Harald Freudenberger (1):
  s390/archrandom: Rework arch random implementation.

 arch/s390/crypto/arch_random.c     | 103 +++++++++++++++++++++++++++++++++++--
 arch/s390/include/asm/archrandom.h |  13 ++---
 2 files changed, 102 insertions(+), 14 deletions(-)

Comments

Khalid Elmously June 18, 2018, 6:23 p.m. UTC | #1
On 2018-06-13 12:04:03 , Joseph Salisbury wrote:
> BugLink: http://bugs.launchpad.net/bugs/1775391
> 
> == 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
> 
> Harald Freudenberger (1):
>   s390/archrandom: Rework arch random implementation.
> 
>  arch/s390/crypto/arch_random.c     | 103 +++++++++++++++++++++++++++++++++++--
>  arch/s390/include/asm/archrandom.h |  13 ++---
>  2 files changed, 102 insertions(+), 14 deletions(-)
> 

Acked-by: Khalid Elmously <khalid.elmously@canonical.com>
Khalid Elmously June 19, 2018, 6:17 p.m. UTC | #2
Applied to Bionic

On 2018-06-13 12:04:03 , Joseph Salisbury wrote:
> BugLink: http://bugs.launchpad.net/bugs/1775391
> 
> == 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
> 
> Harald Freudenberger (1):
>   s390/archrandom: Rework arch random implementation.
> 
>  arch/s390/crypto/arch_random.c     | 103 +++++++++++++++++++++++++++++++++++--
>  arch/s390/include/asm/archrandom.h |  13 ++---
>  2 files changed, 102 insertions(+), 14 deletions(-)
> 
> -- 
> 2.7.4
> 
> 
> -- 
> kernel-team mailing list
> kernel-team@lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team