Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp3069974imu; Thu, 29 Nov 2018 15:04:24 -0800 (PST) X-Google-Smtp-Source: AFSGD/Wk0hvDv8aAkP9610zYpOAuzvAes1dpVzgELjX0EigbU7ENHGwWlIxvpoiMbUHcRbIuBSvD X-Received: by 2002:a62:6799:: with SMTP id t25mr3271718pfj.139.1543532664910; Thu, 29 Nov 2018 15:04:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543532664; cv=none; d=google.com; s=arc-20160816; b=dbyh7uCofkel5V0lXCbxkNxYRn67Ykhr9DXHJkD58VhHHqpepAjZlFgzP4ClxB0DPB qcYGbkYU9ETbRsvQLmm6decze1FPlqpp1XfLMyAeIQKbCLwj24GMCi+Qn8fc3f/vvIV2 E6gt6co5GOMNeyuldNDagOPW+e6vHcttMQA3HSaw7KmkzlAV2BRzWkNnabINTejYJviz x2L5xVMdQ4j2KTX8h8M3dHbyXDAN0eSMM9FxbyQytZHk/Px1uBMfdpG3KrwEa9ou+k9V HK5KyOzcPUcqTbQWjlJTBqbtgIB5eQZdf+pT93j5WuM4/GTlQogCEX7FdaLOt3p8vTYu rryw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=SmyEQQ+l5OyIIuGKF+Wp8dr8FXPjrVVKt/u6uPZGc28=; b=o6X+UKoDKE3yWpkXU7LH0w6RHCulYywprjvkg4xoU4apBtoR14QKrH1zXO+ivRewsL WGWim0MIGll7zQagAnWQa7qm35SE5tZXtUYHm1D04sv7dL2VSk6eBzt3z88j+EChM19Z JOiabdSIdHlisIXDa9/ufijudk15AYUWOQHkKrtCujk30BXLEgeDZB4bFjWXFm3Wmjc1 orgZ+kr5b3tCaVUL4gC9kz8bQDaiyww6mJLu4elOEU2Hzlg3CWkpOXIkROSEFFz7vIMG jV1SIh3p1aYJ60YPXpG6GysmgxYeGEI/WALqRGfFNJpbPzrgf08XfgmSn0CVEYDtdM6E xq/A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=kJ6UH4ll; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-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. [209.132.180.67]) by mx.google.com with ESMTP id e129si3072785pgc.333.2018.11.29.15.04.09; Thu, 29 Nov 2018 15:04:24 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=kJ6UH4ll; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-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 S1727040AbeK3KKg (ORCPT + 99 others); Fri, 30 Nov 2018 05:10:36 -0500 Received: from mail.kernel.org ([198.145.29.99]:44908 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726403AbeK3KKe (ORCPT ); Fri, 30 Nov 2018 05:10:34 -0500 Received: from ebiggers.mtv.corp.google.com (unknown [104.132.1.85]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 91A482146F; Thu, 29 Nov 2018 23:03:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1543532606; bh=XvF/lMOC0lL0Q4e5HLcoOSHhmcyW66zlM9QPCJmkwGc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kJ6UH4llFo77x1Xs8xsh/XitHtePx9VfWwpnyfi3Hkfpn4Me4x5YHFOobgQzqs/s2 /EvxmYrqeKpdBHR++5CbxSpmhrE28tIor2YwBkz/G6W26nubptjzY8XZ5nKPKXnfGQ //B2xYA1wKEaGCtHe0HPIdmLuqsmZRzuLicGKXu8= From: Eric Biggers To: linux-crypto@vger.kernel.org Cc: Paul Crowley , Martin Willi , Milan Broz , "Jason A . Donenfeld" , linux-kernel@vger.kernel.org Subject: [PATCH v2 3/6] crypto: x86/chacha20 - limit the preemption-disabled section Date: Thu, 29 Nov 2018 15:02:14 -0800 Message-Id: <20181129230217.158038-4-ebiggers@kernel.org> X-Mailer: git-send-email 2.20.0.rc0.387.gc7a69e6b6c-goog In-Reply-To: <20181129230217.158038-1-ebiggers@kernel.org> References: <20181129230217.158038-1-ebiggers@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Eric Biggers To improve responsiveness, disable preemption for each step of the walk (which is at most PAGE_SIZE) rather than for the entire encryption/decryption operation. Signed-off-by: Eric Biggers --- arch/x86/crypto/chacha20_glue.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/arch/x86/crypto/chacha20_glue.c b/arch/x86/crypto/chacha20_glue.c index 773d075a1483..036de144aab6 100644 --- a/arch/x86/crypto/chacha20_glue.c +++ b/arch/x86/crypto/chacha20_glue.c @@ -135,26 +135,24 @@ static int chacha20_simd(struct skcipher_request *req) if (req->cryptlen <= CHACHA_BLOCK_SIZE || !may_use_simd()) return crypto_chacha_crypt(req); - err = skcipher_walk_virt(&walk, req, true); + err = skcipher_walk_virt(&walk, req, false); crypto_chacha_init(state, ctx, walk.iv); - kernel_fpu_begin(); - while (walk.nbytes > 0) { unsigned int nbytes = walk.nbytes; if (nbytes < walk.total) nbytes = round_down(nbytes, walk.stride); + kernel_fpu_begin(); chacha20_dosimd(state, walk.dst.virt.addr, walk.src.virt.addr, nbytes); + kernel_fpu_end(); err = skcipher_walk_done(&walk, walk.nbytes - nbytes); } - kernel_fpu_end(); - return err; } -- 2.20.0.rc0.387.gc7a69e6b6c-goog