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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id E5796EDEC43 for ; Wed, 13 Sep 2023 11:28:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 547FD6B00FD; Wed, 13 Sep 2023 07:28:34 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4F8976B0184; Wed, 13 Sep 2023 07:28:34 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3BFE26B0185; Wed, 13 Sep 2023 07:28:34 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 2C7EF6B00FD for ; Wed, 13 Sep 2023 07:28:34 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 07695C0E92 for ; Wed, 13 Sep 2023 11:28:34 +0000 (UTC) X-FDA: 81231351348.26.584E7D2 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by imf02.hostedemail.com (Postfix) with ESMTP id 1A33180005 for ; Wed, 13 Sep 2023 11:28:30 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=scWKfvGS; spf=pass (imf02.hostedemail.com: domain of "SRS0=tZhs=E5=paulmck-ThinkPad-P17-Gen-1.home=paulmck@kernel.org" designates 145.40.68.75 as permitted sender) smtp.mailfrom="SRS0=tZhs=E5=paulmck-ThinkPad-P17-Gen-1.home=paulmck@kernel.org"; dmarc=pass (policy=none) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1694604511; h=from:from:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=SkU9Bj1zhDPp8UcF63n5AW0gurq26cM2A8Td112dKhQ=; b=ZmX0DpKJxdj1uDCrBYAWaW5hsVB3z8WUo3UnupIBo6WXu1iVked+KuonpDfjBSE0kinh6q Z2ayOxCa0my51iVqikHNn5yXeCefAjHWhg34bXhpbmQd7VuR03p96HyPZG1K1nYCzGnWh1 QoLnjv8RdKaEqtyX26jyLdtLLNS3u6M= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1694604511; a=rsa-sha256; cv=none; b=GuUKWdd5M4qq/JjzMu9Loottsk9EMtGIsh9AUvYKYBAM24f7RNAq/1vmR4Tr07ndBsQOqg vqFUtPxuiRBEQPXyzKE++qG8Ht11inEJYYUMM7z1Ez2+UD4cn9/Cm6093mHgnVJPtu0/el tsLlRLnX/jgmrh+e+v54sb1Mf09z/N0= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=scWKfvGS; spf=pass (imf02.hostedemail.com: domain of "SRS0=tZhs=E5=paulmck-ThinkPad-P17-Gen-1.home=paulmck@kernel.org" designates 145.40.68.75 as permitted sender) smtp.mailfrom="SRS0=tZhs=E5=paulmck-ThinkPad-P17-Gen-1.home=paulmck@kernel.org"; dmarc=pass (policy=none) header.from=kernel.org Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 3340AB8235C; Wed, 13 Sep 2023 11:28:29 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id CFAC0C433C7; Wed, 13 Sep 2023 11:28:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1694604507; bh=TgkMDTSkKvv4v8TszdJrmsSFRm605JoHp3AjwV4m+9c=; h=Date:From:To:Cc:Subject:Reply-To:References:In-Reply-To:From; b=scWKfvGSzlV8VbrgFExT/iBiV7p7Hm6NS/oiTwWinIkZ9EX3STfSnMhxsJujgFxZe E37E8lYZFibj9+PWgHBsuqs2YPfibAqF3dcIgMwA+SWX1l2E3PQtcBy2C2Sfh8roFs 9wO9N/KcqF5zt3T2o8es07/Xx7Qa73nwFd+pVP1xHzcW49Wka47WiKwY2SaQsAg6Dh pvrVBbl7OS8+FepotpWFQDIW7XK3weNVf7u/gEQqUHns8UHeKFslc7zA7g/UOidjNl mDSOpKqbyPolRFeafKOAZ6tXJektNF90u43Wb4odCg/MKdf82eXVuNQwqn0tYWc1Z6 jpeowzaDppzOg== Received: by paulmck-ThinkPad-P17-Gen-1.home (Postfix, from userid 1000) id 6AE58CE093C; Wed, 13 Sep 2023 04:28:27 -0700 (PDT) Date: Wed, 13 Sep 2023 04:28:27 -0700 From: "Paul E. McKenney" To: Peter Zijlstra Cc: "Liam R. Howlett" , Andrew Morton , maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, Geert Uytterhoeven , Christophe Leroy , Andreas Schwab , Matthew Wilcox , Peng Zhang , Ingo Molnar , Juri Lelli , Vincent Guittot , "Mike Rapoport (IBM)" , Vlastimil Babka Subject: Re: [PATCH] init/main: Clear boot task idle flag Message-ID: <14620af6-7315-4de3-ac7f-5bb51f773397@paulmck-laptop> Reply-To: paulmck@kernel.org References: <20230913005647.1534747-1-Liam.Howlett@oracle.com> <20230913110139.GE692@noisy.programming.kicks-ass.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230913110139.GE692@noisy.programming.kicks-ass.net> X-Rspamd-Queue-Id: 1A33180005 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: hecnodhzdx19oxqsg7ebxwco8uhj995p X-HE-Tag: 1694604510-45859 X-HE-Meta: U2FsdGVkX1/dgK21hDMITzIJOaWc9Q4d+kIiC3rDVerSCViCiv9h52WOc7Q+KkbujASFseDA0vUWclL0Sz0RbtjKqQBBMW4KSQAqxvw4WvatTN7p/HYz5jl7AUdlmd3t6eVhLD0nrwO+WOBxlC2D95Jl8ZWbgSqW2ZkzplDowwyG16rObv9yNY/gCRZ+BjHAOofJd4J189Foy9Gu3KONaFpXMvRmCXuh6VkuBdxHxjHFH1xJAwQumSGPFh07SE6IRgP9GpQC+f1H+K1DCaFVYZdn/DvL9FNckenzrt7wj4FCzZhMWhPlxshtQm0Z2pee+YxhQntJKdvDZOJnT5I3HejZTu7l8TMRdAfSPgZuiTbbAD80P/Nl9OhM0VUlwjZQhuYyGCLHypzZUzA5RQ8H8RBGuHhcDqHJZWQEtZwbi6KzPQuJDip1nXKNfC9jSMrfgHmBae3k2BXANehiYvJ6u9YzbfKO3hVhVVJXFnwlvGnvvqVVSyXXmbNherVlUf0FNMEvALjTiAN2+EUwS4yWQJ7y6KCGvvDPrCTUsDQY98N/DPopfD2FUrDXBVydN9MLKHryZeXsZZk7rmMoRQpgDBSVq6Kjsc6RfRhXNHkY5e7vEGRb6c8+UgNkL9bKJSZwlIll2/MIcO3pe+rXcskbgiPZ83fcTAqozPIRNldqvvaaxgCcHAiBHjYX6orwJYNRwKpyvTRW0KW3g9qAKZGI+7uQUAI3iAZOaxb5vkw5GF+13+LbB+R0PRMfDYQGzYhl3G/THWs7O73WkSNMQ+OewWpPyg37xc6lZ85+ai5UV9yEdd40VDWNvc/QAhishL9v6oG9SVSznysMJF3QBexujXW1dZOY9+LcUS9jlHn5XP5O1z8COGTlU5AJ3Ygn8PlJSXeZuEXNEa4rkdzeNS7A72w1dpRvWa+DN3VMGopiwYi4Ob+aeuH6nNJGeRgydtmJMAC/HNPEuaihFpV5B7s vQI0qaO3 LKGf+dz+CPYh1UmxleEGxrHCLJolJ+1QwqBwQaOE9L/AEnVNqpn6OS7o91yP43PNk2fPc94XwOwFXTgzhk8hMgthhyLTEituwKfN83yE0X5aPCn0ksHo8M0Yt+DqNpKKtAJpyQheuYdodW1N4lYeOaW8zQ5fiEfrTwwxPIaiqwWD7Y53vEe5fF4W4tsq9+r8kApEgSbvZgxxYJJcqROgiAMhv6B+MF3xAGFXMbY8/QDGiMp24fyxNJsgqhvJPfzVnVd7Wj2jIRA6Mj9jJg62e2Tc49Hsa9D3WX0DKHfvCOtdcdpbd1r7EsBTlzmPZmUddxbUG5INmSM0LC8v4y8VAX0rppTHpgdI9ikC/h8RatLL7yy3KaWwW/qA1OWlGgQKQPNS0cEwRvlyBYU6drHNenEQ4ozaxa9n86/szzk0hE6cu8yHuWNVARZWGggp7gl618wbj52iRYfBKj+erGLPzeBunNbnqmVKmIiHCAiHVA0mqvwu84kLYhfmXmpShpKqN40Eyw5OdNHj352OnAczNm3o1m3xIp1PUqmAJCITdEJVaviAHg1oxvt4K37onObLW3njtrGD3+izMYCrDt01W05nUPaeIgzm8IqYOKulY/6etvOWqpNP9JTGiL3uZY+dptkceNJRPZRswNQqmYZT4N6/lbhIZXiphNIdf2TSGKo6tXJ2phdnjpT/vNXxiNzgg4FC5iVS1EWhhc8AOo/P+2HqmXnB1vSx8+iR5GeVfoGMcmwH9xJPfxifxak9z0F3XEMF4yE1MqDMNM0cZDD2UNNBYqKj1y75OwQLqs6irWrmM2jqYibNikdzQ54YyICUYVxkJEnDg6aZft3MsOdzcxglLDw+de1XGoLUiheYTWRaipYiPKOCrRnm46zJwIflW4vNbb8DexnvJ813Z6sJDrMFChAlfejtMDdfDw+l2RsDv/aI/evT8HYUCio1qHesCQRyejGpY8iffaCIwDs1VrTntVr8u CYSNfd1T QG/G/xwJaKdDA+NG5lU8lzP7XVtb7WjuwdK/VsDGBMwhq+jjJU/h50/pNtTH2l2TwXGU73/kitodMqiK++3kNDA7Sko0bP3GCNiKyb6Ll1jbve4e+3Zt8UHoBflwBTlmkSNYNeCuAO4= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Wed, Sep 13, 2023 at 01:01:39PM +0200, Peter Zijlstra wrote: > On Tue, Sep 12, 2023 at 08:56:47PM -0400, Liam R. Howlett wrote: > > Initial booting is setting the task flag to idle (PF_IDLE) by the call > > path sched_init() -> init_idle(). Having the task idle and calling > > call_rcu() in kernel/rcu/tiny.c means that TIF_NEED_RESCHED will be > > set. Subsequent calls to any cond_resched() will enable IRQs, > > potentially earlier than the IRQ setup has completed. Recent changes > > have caused just this scenario and IRQs have been enabled early. > > > > This causes a warning later in start_kernel() as interrupts are enabled > > before they are fully set up. > > > > Fix this issue by clearing the PF_IDLE flag on return from sched_init() > > and restore the flag in rest_init(). Although the boot task was marked > > as idle since (at least) d80e4fda576d, I am not sure that it is wrong to > > do so. The forced context-switch on idle task was introduced in the > > tiny_rcu update, so I'm going to claim this fixes 5f6130fa52ee. > > > > Link: https://lore.kernel.org/linux-mm/87v8cv22jh.fsf@mail.lhotse/ > > Link: https://lore.kernel.org/linux-mm/CAMuHMdWpvpWoDa=Ox-do92czYRvkok6_x6pYUH+ZouMcJbXy+Q@mail.gmail.com/ > > Fixes: 5f6130fa52ee ("tiny_rcu: Directly force QS when call_rcu_[bh|sched]() on idle_task") > > Cc: stable@vger.kernel.org > > Cc: Geert Uytterhoeven > > Cc: "Paul E. McKenney" > > Cc: Christophe Leroy > > Cc: Andreas Schwab > > Cc: Matthew Wilcox > > Cc: Peng Zhang > > Cc: Peter Zijlstra > > Cc: Ingo Molnar > > Cc: Juri Lelli > > Cc: Vincent Guittot > > Cc: Andrew Morton > > Cc: "Mike Rapoport (IBM)" > > Cc: Vlastimil Babka > > Signed-off-by: Liam R. Howlett > > --- > > init/main.c | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/init/main.c b/init/main.c > > index ad920fac325c..f74772acf612 100644 > > --- a/init/main.c > > +++ b/init/main.c > > @@ -696,7 +696,7 @@ noinline void __ref __noreturn rest_init(void) > > */ > > rcu_read_lock(); > > tsk = find_task_by_pid_ns(pid, &init_pid_ns); > > - tsk->flags |= PF_NO_SETAFFINITY; > > + tsk->flags |= PF_NO_SETAFFINITY | PF_IDLE; > > set_cpus_allowed_ptr(tsk, cpumask_of(smp_processor_id())); > > rcu_read_unlock(); > > > > @@ -938,6 +938,8 @@ void start_kernel(void) > > * time - but meanwhile we still have a functioning scheduler. > > */ > > sched_init(); > > + /* Avoid early context switch, rest_init() restores PF_IDLE */ > > + current->flags &= ~PF_IDLE; > > > > if (WARN(!irqs_disabled(), > > "Interrupts were enabled *very* early, fixing it\n")) > > Hurmph... so since this is about IRQs, would it not make sense to have > the | PF_IDLE near 'early_boot_irqs_disabled = false' ? > > Or, alternatively, make the tinyrcu thing check that variable? We could do that, but do we really the decidedly non-idle early boot sequence designated as idle? What surprises me is that this is just now showing up. The ingredients for this one have been in place for almost 10 years. Thanx, Paul