Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp4266260pxf; Tue, 30 Mar 2021 03:37:38 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwuwAGvd+o6AP9vpVhC84jtHICTtEmOL5XRaioX4FDsDugAW19y1CfgMg4jgnXrV7uI44O4 X-Received: by 2002:a05:6402:1cc1:: with SMTP id ds1mr32482621edb.135.1617100658443; Tue, 30 Mar 2021 03:37:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617100658; cv=none; d=google.com; s=arc-20160816; b=L++XXnSttGmrPIxRFp2kY7cGdbsOaP1dsE5TzJ9GSlwxBTEPVfzvC5dNYNBgNQ9XT6 7Hklt2Oc/e3R8rYMSUxq8sRklAYjVjcA0sBnGhY572AkjF/scR7vT3woFEjStaFM72RG 8u19YXN/6A6SY6gE+PebT7jILnPOGJTFASjqZdMGKQPICsnhFT0sd0n5oLk9cvyem2bT e59x/W9ElkX0ykLrAtLUNafADb4yp/idlVDvnGTSVyIgou1pH4nmQrNZuCVUBp8O5zU8 3JJyUma6ivCbHicxaTV49a1FFVWjoQAriaF2UdVIBYjMOD0nH3fShkgwYl/ZyjlwgaLV OyXw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature; bh=TFEkhPq+MiG4Fdn090/NDgVR6ChGt+P7ylmR+Sqa5Os=; b=BnEGjLmiPqcI/T8fV4+n53nLp/w3Xd70jHJLUd1xwP9w4kv7AKvNtQJrnF7AA0Kisq mHYeqOiFhV5fkRWpNBP6s4vTFeHw4o6AFwSNoNsiG2dHyehl4Lhp2faLDJFVlQryrXQW 2ufPn/fomAqJgd/qzJuVSrym6UrG23MMBc0azUe6DewWvvOBFFf80HCsF6ovi2dGGh3v WtJ0Kvga9hKsQ4hS9L/fsDiMob3y6OQMUVNJCvFxPdBBPd4Y4ZqnIw681zgOXD5owr65 mff1TRarXlRErbjBlGxhNHrAlRUAEP5l3bzJLmMI/9u5HDQkVI9Ik6lDW4ppNHr0swxX VCVw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Gn0F7rfp; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id nd18si15404624ejc.562.2021.03.30.03.37.08; Tue, 30 Mar 2021 03:37:38 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Gn0F7rfp; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231759AbhC3Kg3 (ORCPT + 99 others); Tue, 30 Mar 2021 06:36:29 -0400 Received: from mail.kernel.org ([198.145.29.99]:45008 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231773AbhC3KgN (ORCPT ); Tue, 30 Mar 2021 06:36:13 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id A4CAF619A6; Tue, 30 Mar 2021 10:36:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1617100573; bh=vlejUKjTN3abqWjJfwmpRpsVi7zGnnH1VNzjwBkSdpA=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=Gn0F7rfpSJGa1lUn7RpxMmByH6rnRx0GkGAAOSQ9Mo2889QfJDudDHMrq6u19X7+p ZOD+ZKii11jl2u6IO5tb0jJSG2cBlGPtsSUBHgq64doV+qVgGNQZUWgY5jrBVhE90H dNr2jr/sgwn/MzxT1oem6Lsekm+J+9PjhaHhLk3AGAoxnVU/gq5CN5uhRgdCZok9yz 0lS6xeCBCckQSQ8Ed2lbYNJfgOHHVMCr/o3zDqgyBMrgDo+buzsMVIvxQwBVhmZa0D do8Xpu5JFEp7BE7rN9o29obvSgyppymcMKn4/HW69Ehe4+HmYFprsP1aQ+pVJ0VQcy mOKV6oi0K4cYw== Date: Tue, 30 Mar 2021 11:36:07 +0100 From: Will Deacon To: Ard Biesheuvel Cc: linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Dave Martin , Mark Brown , Herbert Xu , Eric Biggers , Catalin Marinas , Thomas Gleixner , Peter Zijlstra , Sebastian Andrzej Siewior , Ingo Molnar , Andy Lutomirski Subject: Re: [PATCH v2 3/9] arm64: fpsimd: run kernel mode NEON with softirqs disabled Message-ID: <20210330103605.GC5352@willie-the-truck> References: <20210302090118.30666-1-ardb@kernel.org> <20210302090118.30666-4-ardb@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210302090118.30666-4-ardb@kernel.org> User-Agent: Mutt/1.10.1 (2018-07-13) Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org On Tue, Mar 02, 2021 at 10:01:12AM +0100, Ard Biesheuvel wrote: > Kernel mode NEON can be used in task or softirq context, but only in > a non-nesting manner, i.e., softirq context is only permitted if the > interrupt was not taken at a point where the kernel was using the NEON > in task context. > > This means all users of kernel mode NEON have to be aware of this > limitation, and either need to provide scalar fallbacks that may be much > slower (up to 20x for AES instructions) and potentially less safe, or > use an asynchronous interface that defers processing to a later time > when the NEON is guaranteed to be available. > > Given that grabbing and releasing the NEON is cheap, we can relax this > restriction, by increasing the granularity of kernel mode NEON code, and > always disabling softirq processing while the NEON is being used in task > context. > > Signed-off-by: Ard Biesheuvel > --- > arch/arm64/crypto/aes-modes.S | 2 +- > arch/arm64/crypto/sha1-ce-core.S | 2 +- > arch/arm64/crypto/sha2-ce-core.S | 2 +- > arch/arm64/crypto/sha3-ce-core.S | 4 +-- > arch/arm64/crypto/sha512-ce-core.S | 2 +- > arch/arm64/include/asm/assembler.h | 28 +++++++++++++++----- > arch/arm64/kernel/asm-offsets.c | 2 ++ > arch/arm64/kernel/fpsimd.c | 4 +-- > 8 files changed, 31 insertions(+), 15 deletions(-) Acked-by: Will Deacon Will