From patchwork Wed Jun 13 16:04:03 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joseph Salisbury X-Patchwork-Id: 928960 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=canonical.com Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 415Wld5djrz9s0W; Thu, 14 Jun 2018 02:04:13 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1fT8Fj-0003JE-9H; Wed, 13 Jun 2018 16:04:07 +0000 Received: from youngberry.canonical.com ([91.189.89.112]) by huckleberry.canonical.com with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.86_2) (envelope-from ) id 1fT8Fi-0003J1-CH for kernel-team@lists.ubuntu.com; Wed, 13 Jun 2018 16:04:06 +0000 Received: from 1.general.jsalisbury.us.vpn ([10.172.67.212] helo=salisbury) by youngberry.canonical.com with esmtpsa (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.76) (envelope-from ) id 1fT8Fi-0005D2-1I for kernel-team@lists.ubuntu.com; Wed, 13 Jun 2018 16:04:06 +0000 Received: by salisbury (Postfix, from userid 1000) id DDD057E11DF; Wed, 13 Jun 2018 12:04:04 -0400 (EDT) From: Joseph Salisbury To: kernel-team@lists.ubuntu.com Subject: [SRU][Bionic][PATCH 0/1] s390/archrandom: Rework arch random implementation. Date: Wed, 13 Jun 2018 12:04:03 -0400 Message-Id: X-Mailer: git-send-email 2.17.0 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" 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