From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E0B23CCA47A for ; Tue, 14 Jun 2022 14:03:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235765AbiFNODw (ORCPT ); Tue, 14 Jun 2022 10:03:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48032 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231223AbiFNODu (ORCPT ); Tue, 14 Jun 2022 10:03:50 -0400 Received: from out203-205-221-164.mail.qq.com (out203-205-221-164.mail.qq.com [203.205.221.164]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 803E73883; Tue, 14 Jun 2022 07:03:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1655215425; bh=b+j3hfI52SuPbVR8+0Rma0F6k2hM1BhO8T4wYrdBWG4=; h=Subject:To:Cc:References:From:Date:In-Reply-To; b=lYLuGiA/IGGLaucMp/fFwuc+HQhZKA4CDzpmNbwW1U+IQXVOrY4fc9W0YGzqq89hX 6AXqJWSUHK2qdP6fI34EKr65dlNG7NV5IqNuhpWN7ptNw/d4a+bzRn2Itie6Dm7Pjo qeaTxWl3HWprgxBWh9aOhVWCCsfFgNnDiFcy948U= Received: from [IPv6:240e:45a:409:26e3:89c6:2747:8c5d:8528] ([240e:45a:409:26e3:89c6:2747:8c5d:8528]) by newxmesmtplogicsvrszc9.qq.com (NewEsmtp) with SMTP id E88A091; Tue, 14 Jun 2022 22:03:40 +0800 X-QQ-mid: xmsmtpt1655215420t2ny1izu9 Message-ID: X-QQ-XMAILINFO: M/NR0wiIuy702s701Wg5VwT1mROVrNO7zSBbQM60JMaejeyA4EMHVrtEyQiEhp hZ3rBlbgVlHcdZhKhw0sUoAKKkJ24It+CGPJjV+RHFSdXwJbMRAD53jS2y/loZGOpaqD+kmO9YZB 0Fz9pjlFGKg94ojqZnH0fcQGPLnyRpCUsH/4unfLDT/G7tC4fkw29JR39vx6Jyo6/rxQlYyGcm6K evyn/epSRAKDLd+0DPX6U31MTSblE3iffi8VetpwqZArZn0/POGUlQX56re3R7gejBVLOIPrrYhI FLi6ShBJQ6vCNllZKrP1XVNjGkcxcUz4hBAXfc389qOKnYryYgSw4ZjWFhmjjyQGr9bIEIW/FBIU ydn/mDSVT5Fw8y18rCWfGcYzERSVuGPrkOxMPYLVjlJMLpvvwFH1OWppJZ1wMx1gKtDjh0sXIz+i +XKRdNEItsfqs6FskkkZxYTKDxATaUoRE/S0hkFPeHctFFYfmhVsrK7AKZJJ6+CxpyEpEV+6ZwWu imObWSGnjIjulVj8drQc6gE/8DU4KJ2W69RIe0PGG5HflYKwV3jtzwEmlqivN5Gf1YXU1XhORBA+ 3MyJcWqeN8IiCdwrLU7kHCQMjezSPlTAOfJamiIZ4xfs4EcQS0egayXS4ANyPofDcrM1P0E8Ehnw 5xFeIM8PfDl7DIKKCr0Mt/smMt99EppSrVPriF8tcd6/+wOcpbBGlGMoTF9zG1obxNeFq71xfGxD vCGfKxgIIvaEp+3E496PkhwoBdNHzUSMKtOQqrFwYl9nsZvAkZ+sTuMiFP5m67pozNvlekhbslFo jn2ezjuUWKbQtwg9wpRxjJub2pSjxNUBOYmmWigYastaeoa/vGzeZTqxpgXU7R7uIG9j3GRny+hW shfHZwnCjDPoJ1lqeuDlAu7ojShPQ6MDEN3E5em3oRH71o5kVEHWoGSZ/2dSwtPQybK+smJz6LJi XvL3E8r8oONCL3Rp/FhKJXC8uBOGUq1WcAaSPwn1o= Subject: Re: Commit 282d8998e997 (srcu: Prevent expedited GPs and blocking readers from consuming CPU) cause qemu boot slow To: Neeraj Upadhyay , Shameerali Kolothum Thodi , "paulmck@kernel.org" Cc: Paolo Bonzini , Zhangfei Gao , "linux-kernel@vger.kernel.org" , "rcu@vger.kernel.org" , Lai Jiangshan , Josh Triplett , Mathieu Desnoyers , Matthew Wilcox , "mtosatti@redhat.com" , Auger Eric , "chenxiang (M)" References: <20220612162029.GR1790663@paulmck-ThinkPad-P17-Gen-1> <20220612164002.GA1242564@paulmck-ThinkPad-P17-Gen-1> <560f7d27-fe38-0db9-834a-50dda5fa6157@redhat.com> <20220612184944.GU1790663@paulmck-ThinkPad-P17-Gen-1> <20220613035711.GY1790663@paulmck-ThinkPad-P17-Gen-1> <20220613041652.GA3976000@paulmck-ThinkPad-P17-Gen-1> <20220613121831.GA1790663@paulmck-ThinkPad-P17-Gen-1> <20220613145900.GC1790663@paulmck-ThinkPad-P17-Gen-1> <7b6c983b21d44119b61716a66de397ed@huawei.com> From: "zhangfei.gao@foxmail.com" X-OQ-MSGID: Date: Tue, 14 Jun 2022 22:03:35 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2022/6/14 下午8:19, Neeraj Upadhyay wrote: > >> >> 5.18-rc4 based               ~8sec >> >> 5.19-rc1                     ~2m43sec >> >> 5.19-rc1+fix1                 ~19sec >> >> 5.19-rc1-fix2                 ~19sec >> > > If you try below diff on top of either 5.19-rc1+fix1 or 5.19-rc1-fix2 > ; does it show any difference in boot time? > > --- a/kernel/rcu/srcutree.c > +++ b/kernel/rcu/srcutree.c > @@ -706,7 +706,7 @@ static void srcu_schedule_cbs_snp(struct > srcu_struct *ssp, struct srcu_node *snp >   */ >  static void srcu_gp_end(struct srcu_struct *ssp) >  { > -       unsigned long cbdelay; > +       unsigned long cbdelay = 1; >         bool cbs; >         bool last_lvl; >         int cpu; > @@ -726,7 +726,9 @@ static void srcu_gp_end(struct srcu_struct *ssp) >         spin_lock_irq_rcu_node(ssp); >         idx = rcu_seq_state(ssp->srcu_gp_seq); >         WARN_ON_ONCE(idx != SRCU_STATE_SCAN2); > -       cbdelay = !!srcu_get_delay(ssp); > +       if (ULONG_CMP_LT(READ_ONCE(ssp->srcu_gp_seq), > READ_ONCE(ssp->srcu_gp_seq_needed_exp))) > +               cbdelay = 0; > + >         WRITE_ONCE(ssp->srcu_last_gp_end, ktime_get_mono_fast_ns()); > Test here: qemu: https://github.com/qemu/qemu/tree/stable-6.1 kernel: https://github.com/Linaro/linux-kernel-uadk/tree/uacce-devel-5.19-srcu-test (in case test patch not clear, push in git tree) Hardware: aarch64 1. 5.18-rc6 real    0m8.402s user    0m3.015s sys     0m1.102s 2. 5.19-rc1 real    2m41.433s user    0m3.097s sys     0m1.177s 3. 5.19-rc1 + fix1 from Paul real    2m43.404s user    0m2.880s sys     0m1.214s 4. 5.19-rc1 + fix2: fix1 + Remove "if (!jbase)" block real    0m15.262s user    0m3.003s sys     0m1.033s When build kernel in the meantime, load time become longer. 5. 5.19-rc1 + fix3: fix1 + SRCU_MAX_NODELAY_PHASE 1000000 real    0m15.215s user    0m2.942s sys    0m1.172s 6. 5.19-rc1 + fix4: fix1 + Neeraj's change of srcu_gp_end  real    1m23.936s user    0m2.969s sys    0m1.181s More test details: https://docs.qq.com/doc/DRXdKalFPTVlUbFN5 Thanks