Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp3784395iog; Tue, 28 Jun 2022 02:43:21 -0700 (PDT) X-Google-Smtp-Source: AGRyM1vCoVvij5GeJxQT3tA9A18CIqBDjzL619sBCG1Q0gJ/MlteFUDQ03+pd0DEfmi8/btCCzfY X-Received: by 2002:a05:6a00:1a08:b0:510:979e:f5b with SMTP id g8-20020a056a001a0800b00510979e0f5bmr3833682pfv.34.1656409401436; Tue, 28 Jun 2022 02:43:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1656409401; cv=none; d=google.com; s=arc-20160816; b=rlvQfbVQYyql60e1JuX+HQesUaGu3lELjGYPcg46zxcBsevur8VDqVlKSzQxc0IwAU txv37C9tdrKVe6PAbDQa7OL570fk3iOBsURMz2AURd0TwtZqlG7UU8Xv+ayXRnNtrXbp IobDBnB69ZAzrpU0YtQpGO/XvTx8V3eGci6fIuR6gpfKWMw8d3/kw2AFD9hgFT6HSkdL E4e4dDO6PzjgOa2XABfoZfm/4/D5BNHQZzHzN5/2od/xe/qEutQZx6X9LrEaXekqAROg 7+eVo2PgzjqPg2/dv3amG1KlP1ZcIC1am0PT2QhKOwP0IbLZfoizDuXG7hP9mYn4Atnp Ilvg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:subject:cc:to:from:message-id :date:dkim-signature; bh=qWRdFZzT8MtSG8e2sX9yt5OlgX90t7Uc2TFkKkFdQxI=; b=MCcyRWT2jy71LeUrcCciVMJNmOUeuYjXwdz7OWBHjbwDVrwrjI/zcBqCbgQIvVn4DS DnGDvgEAVS7pRb1Hfv4JB8qHiYxErBhibj0hntx1AiwAhya5AhKn1Iwpd/tEGbDc1GRz ahp+8Zmr18Eil/2guUTmdltC4H15G7gmIBzYyhimi4RhO0oigE3gNkdKt6Hn+YUFS/4W aeLUnfqX16ImRH0n4ZI+XZ2tLt7eY+1Xc4s8Pa3qVTwYGYU0X6a/lDL/ZyMuFhc6Dspe NoYi22dbB4DHfDkVoaMd7NQ15IznbIKkF0ZKAmH+X61JjvtdlJrKSROhFCxRF9TTufZs uvlw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="SVJh/3WV"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id p6-20020a170903248600b00158d6f07b2esi16264199plw.85.2022.06.28.02.43.08; Tue, 28 Jun 2022 02:43:21 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-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=@kernel.org header.s=k20201202 header.b="SVJh/3WV"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 S245647AbiF1JES (ORCPT + 99 others); Tue, 28 Jun 2022 05:04:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33360 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236978AbiF1JEQ (ORCPT ); Tue, 28 Jun 2022 05:04:16 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7C35612602 for ; Tue, 28 Jun 2022 02:04:15 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 34B62B81D35 for ; Tue, 28 Jun 2022 09:04:14 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D1C78C3411D; Tue, 28 Jun 2022 09:04:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1656407052; bh=K2miiS575tpvxZbz8gGejBUn5dzqpXWlRAknqHKFO/Q=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=SVJh/3WVAckTF73Ll3+ve2i9KFMvuai9I5BMfgGT5Iqi23a8+0Dhd7Z8J8N+2Kxfx wdmQ4sg+dUvPveDAy9zE13k+ji75g03E4cU0tQ/HKoD0FawVK7gmVwTOs9XQy9pFTC D1LgWj6I4RnePSkcDRsMGyts8qpaU0vUp76w/ZzeyLeeFeh54ENQyL2Uqwa+du08hN IKLNccOSpRqoBHwyDZnrA7dJWAqrYhmuYxx7s6+HGPK+uy5lbv+Em7uU3QneAJ56lv /R/N0ho1DTLjB8r6Apsj91WS+c9IDJdkkrxSVZO0hPxGUbyU4Is0AoT7Of/TYrLFjP moISXmEaPXWFQ== Received: from sofa.misterjones.org ([185.219.108.64] helo=why.misterjones.org) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1o676o-003ihy-Bu; Tue, 28 Jun 2022 10:04:10 +0100 Date: Tue, 28 Jun 2022 10:02:09 +0100 Message-ID: <875ykl2mb2.wl-maz@kernel.org> From: Marc Zyngier To: Neeraj Upadhyay Cc: , , , , , , , , , , , , , , , Subject: Re: [PATCH] srcu: Reduce blocking agressiveness of expedited grace periods further In-Reply-To: <20220627123706.20187-1-quic_neeraju@quicinc.com> References: <20220627123706.20187-1-quic_neeraju@quicinc.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/27.1 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 185.219.108.64 X-SA-Exim-Rcpt-To: quic_neeraju@quicinc.com, paulmck@kernel.org, frederic@kernel.org, josh@joshtriplett.org, rostedt@goodmis.org, mathieu.desnoyers@efficios.com, jiangshanlai@gmail.com, joel@joelfernandes.org, linux-kernel@vger.kernel.org, zhangfei.gao@foxmail.com, boqun.feng@gmail.com, urezki@gmail.com, shameerali.kolothum.thodi@huawei.com, pbonzini@redhat.com, mtosatti@redhat.com, eric.auger@redhat.com, chenxiang66@hisilicon.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false X-Spam-Status: No, score=-7.5 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE 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-kernel@vger.kernel.org On Mon, 27 Jun 2022 13:37:06 +0100, Neeraj Upadhyay wrote: >=20 > Commit 640a7d37c3f4 ("srcu: Block less aggressively for expedited > grace periods") highlights a problem where aggressively blocking > SRCU expedited grace periods, as was introduced in commit > 282d8998e997 ("srcu: Prevent expedited GPs and blocking readers > from consuming CPU"), introduces ~2 minutes delay to the overall > ~3.5 minutes boot time, when starting VMs with "-bios QEMU_EFI.fd" > cmdline on qemu, which results in very high rate of memslots > add/remove, which causes > ~6000 synchronize_srcu() calls for > kvm->srcu SRCU instance. >=20 > Below table captures the experiments done by Zhangfei Gao, Shameer, > to measure the boottime impact with various values of non-sleeping > per phase counts, with HZ_250 and preemption enabled: >=20 > +=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80+=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80+ > | SRCU_MAX_NODELAY_PHASE | Boot time (s) | > +=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80+=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80+ > | 100 | 30.053 | > | 150 | 25.151 | > | 200 | 20.704 | > | 250 | 15.748 | > | 500 | 11.401 | > | 1000 | 11.443 | > | 10000 | 11.258 | > | 1000000 | 11.154 | > +=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80+=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80+ >=20 > Analysis on the experiment results showed improved boot time > with non blocking delays close to one jiffy duration. This > was also seen when number of per-phase iterations were scaled > to one jiffy. >=20 > So, this change scales per-grace-period phase number of non-sleeping > polls, soiuch that, non-sleeping polls are done for one jiffy. In addition > to this, srcu_get_delay() call in srcu_gp_end(), which is used to calcula= te > the delay used for scheduling callbacks, is replaced with the check for > expedited grace period. This is done, to schedule cbs for completed exped= ited > grace periods immediately, which results in improved boot time seen in > experiments. >=20 > In addition to the changes to default per phase delays, this change > adds 3 new kernel parameters - srcutree.srcu_max_nodelay, > srcutree.srcu_max_nodelay_phase, srcutree.srcu_retry_check_delay. > This allows users to configure the srcu grace period scanning delays, > depending on their system configuration requirements. >=20 > Signed-off-by: Neeraj Upadhyay I've given this a go on one of my test platforms (the one I noticed the issue on the first place), and found that the initial part of the EFI boot under KVM (pointlessly wiping the emulated flash) went down to 1m7s from 3m50s (HZ=3D250). Clearly a massive improvement, but still a far cry from the original ~40s (yes, this box is utter crap -- which is why I use it). Anyway: Tested-by: Marc Zyngier M. --=20 Without deviation from the norm, progress is not possible.