Received: by 2002:a05:6358:1087:b0:cb:c9d3:cd90 with SMTP id j7csp3308262rwi; Tue, 11 Oct 2022 23:19:33 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6z0KNyoPh8tlhXV6t+RrlM//MMB3XipbQNNy95PVprnBBnOLm+NYTth1YL4qbNoSpzPbZ4 X-Received: by 2002:a05:6402:524c:b0:45b:d206:d8f with SMTP id t12-20020a056402524c00b0045bd2060d8fmr18548833edd.328.1665555573226; Tue, 11 Oct 2022 23:19:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1665555573; cv=none; d=google.com; s=arc-20160816; b=qcp0S+d/UbVc1xdB3CywZZ12NYVSDBq/lB/Uzdw3leNMb3SxQn2s4pK95nkHqGr4vn 0L1nYS9qBMZ6WZ0dmYB6QaVxlpTNGzYyvkLmizC5VawpYtw0zi0/lh3PSMwlGpOR33rU it1Kz1AEnItuGpEEUzl6DORs6l+OkDypQnN7vBzQCd4vqv+3S2wLPpY2Hd/BcCkbqVRj hwFyrsWPh0ovC3BFyEggd4silX2sa+IEUwcrhsinQgRZ7dRYjMIrDvBZJ6VRmBl3y22q qsAWF2MjpRNRy33+vRetIbPskIo9U6q0ALkM0l+N1sb5Lr5rj80GtlFJ/alGMKZowN0E 5/Mg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:subject:user-agent:mime-version:date:message-id :dkim-signature; bh=iXPwhDEno8WppMwcdGdxGZla4T7knIHdP81b3128AZY=; b=Glatja2/77p2puVX68Zh5tPMaPpAxvpHgs0o2+t3g/hblH0V5gawQmAMedB9MOBrn8 F4MdBvWbqArK+2nOBN29SuZPRSA5vUB8xJtioguUl8i0vRh26JkbXjy+U5U0nseD38a1 KJzZNd5Hsk53sXcVy6ouNbjNJywTupyH2PXI6jYqPG7yj8USSi6Z0n9zM3DXy6+tbJJD /gRn61nZTjOvdMKF/KTtwYDW3Uj507aBbTQ8D34gl9msSPm1wLTPxiEbkLQM0cGxj5IN iy1IM9P5gNLAYWoT88e1WQ1bwpyGRpWm3MK9spUOJon36xpjzQE+302EuxWjt8UKsRD+ ui3g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=Oxt3WPaz; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id r18-20020a05640251d200b0044e9ca6880bsi17469247edd.364.2022.10.11.23.18.58; Tue, 11 Oct 2022 23:19:33 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=Oxt3WPaz; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229736AbiJLGId (ORCPT + 99 others); Wed, 12 Oct 2022 02:08:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34476 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229722AbiJLGIb (ORCPT ); Wed, 12 Oct 2022 02:08:31 -0400 Received: from mail-pl1-x62d.google.com (mail-pl1-x62d.google.com [IPv6:2607:f8b0:4864:20::62d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 42911DE90 for ; Tue, 11 Oct 2022 23:08:30 -0700 (PDT) Received: by mail-pl1-x62d.google.com with SMTP id b2so15313342plc.7 for ; Tue, 11 Oct 2022 23:08:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=iXPwhDEno8WppMwcdGdxGZla4T7knIHdP81b3128AZY=; b=Oxt3WPazMlkrL7mVCN99lrZpczJFc0ojBx7zjFnv6PAXWotZLTJOoHBd+LRRtCzt50 /nCkp0weW1Uo7hhz1YS6fX4wolxAgEvOHU3CMQqJncVg+/7dEACnS8Sa7KZZJFohWjtM 9x7raVqQeiF9z+BQSAl0X6zskUuqn+8RNf1Taop8BTmUth09CswthLeNj+TMQWWU3gvt W8jXzxdBr+YPJQHSw33ceRFC1NXsxtigjFZqdoEjA5BUsx+Ajv3PxLG2sNqc63i8z2BD vBJRRlO+FEWJClGcfXhE5v++2DLhN+YYvJ6vaPKdRjakfCP8/S1DhPxeIcBV6/ckxgVw pnNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=iXPwhDEno8WppMwcdGdxGZla4T7knIHdP81b3128AZY=; b=SZJIrBuO19aEx+Yo8Dwgs0x73J3rh6N34eqtGfYBQt1SCJc6yjnP68J1LOc8KP2twX FMtSDvZp7+84YjGxTwDhVS3n4NIcsyn3VSZVEkbwUWWKcWhOVcoTBFvDXgmxH3Flltze NmzipSmI2Jo8bsDomrMHe/THw7fsi+I810l4fkdWhSPxUOKQAOyvmyHTHnHhezf/mMKA v6Jb8Kqz41cU2csx1Lavjr3W/wmCpzpvlUmA9qkaOeFLf4fvWnVcqfQWHaGKlAVZFjxf xi22fIYTbOYVGUFyHISvaWjUy1emTdmkzPY2qugiiMTuVwILpOUZd+1rNcQPoCGrba7a 8JbQ== X-Gm-Message-State: ACrzQf1qgkA9RKV38QB63tkkstqSIAsS6BD1SrYSnfurn/GfqGXHRzlQ wlIxpm5o8KRvG//hWNdUsD8= X-Received: by 2002:a17:903:2347:b0:181:33f0:f64e with SMTP id c7-20020a170903234700b0018133f0f64emr21060431plh.106.1665554909660; Tue, 11 Oct 2022 23:08:29 -0700 (PDT) Received: from [192.168.123.100] ([182.213.254.91]) by smtp.gmail.com with ESMTPSA id pf15-20020a17090b1d8f00b00200a85fa777sm604912pjb.1.2022.10.11.23.08.26 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 11 Oct 2022 23:08:29 -0700 (PDT) Message-ID: Date: Wed, 12 Oct 2022 15:08:24 +0900 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.13.1 Subject: Re: [PATCH] crypto: x86: Do not acquire fpu context for too long To: "Elliott, Robert (Servers)" , Herbert Xu Cc: Ard Biesheuvel , "linux-crypto@vger.kernel.org" , "davem@davemloft.net" , "tglx@linutronix.de" , "mingo@redhat.com" , "bp@alien8.de" , "dave.hansen@linux.intel.com" , "x86@kernel.org" , "hpa@zytor.com" , "ebiggers@google.com" References: <20221004044912.24770-1-ap420073@gmail.com> From: Taehee Yoo In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org Hi Elliott, Robert 2022. 10. 10. 오전 4:58에 Elliott, Robert (Servers) 이(가) 쓴 글: > > >> -----Original Message----- >> From: Herbert Xu >> Sent: Sunday, October 9, 2022 1:20 AM >> To: Elliott, Robert (Servers) >> Cc: Ard Biesheuvel ; Taehee Yoo ; linux- >> crypto@vger.kernel.org; davem@davemloft.net; tglx@linutronix.de; >> mingo@redhat.com; bp@alien8.de; dave.hansen@linux.intel.com; x86@kernel.org; >> hpa@zytor.com; ebiggers@google.com >> Subject: Re: [PATCH] crypto: x86: Do not acquire fpu context for too long >> >> On Sat, Oct 08, 2022 at 07:48:07PM +0000, Elliott, Robert (Servers) wrote: >>> >>> Perhaps the cycles mode needs to call cond_resched() too? >> >> Yes, just make the cond_resched unconditional. Having a few too many >> rescheds shouldn't be an issue. > > This looks promising. I was able to trigger a lot of rcu stalls by setting: > echo 2 > /sys/module/rcupdate/parameters/rcu_cpu_stall_timeout > echo 200 > /sys/module/rcupdate/parameters/rcu_exp_cpu_stall_timeout > > and running these concurrently: > watch -n 0 modprobe tcrypt=200 > watch -n 0 module tcrypt=0 through 999 > > After changing tcrypt to call cond_resched in both cases, I don't see any > more rcu stalls. > > I am getting miscompares from the extended self-test for crc32 and > crct10dif, and will investigate those further. > > BTW, the way tcrypt always refuses to load leads to an ever-growing list in > the Call Traces: > > kernel: Unloaded tainted modules: tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 t > crypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 > tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 > tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt(): > 1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt():1 tcrypt() > :1 tcrypt():1 tcrypt():1 tcrypt():1 > > > I tested mb_aead as well. I can find rcu stalls easily while testing gcm(aes-generic) with the below commands. #shell1 while : do modprobe tcrypt mode=215 num_mb=1024 done #shell2 while : do modprobe tcrypt mode=0 done Then, I added cond_resched() as you mentioned. diff --git a/crypto/tcrypt.c b/crypto/tcrypt.c index a82679b576bb..eeb3abb4eece 100644 --- a/crypto/tcrypt.c +++ b/crypto/tcrypt.c @@ -415,6 +415,7 @@ static void test_mb_aead_speed(const char *algo, int enc, int secs, } else { ret = test_mb_aead_cycles(data, enc, bs, num_mb); + cond_resched(); } I can't see rcu stalls anymore, I think it works well.