Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp2716446pxv; Sun, 11 Jul 2021 23:39:05 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyhgLvL1JAvKNP0BGYbHyumutoe5Sdih+K1gZehYimG3grreO1UNwCq2K1LDcxbhu08QI9z X-Received: by 2002:a17:906:7d2:: with SMTP id m18mr30415383ejc.229.1626071945413; Sun, 11 Jul 2021 23:39:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626071945; cv=none; d=google.com; s=arc-20160816; b=KQwWFTT0mZve6xits/b+Yal0mVeISTWBeuRQMjKpkTf9isqYLn9GOLyNNzTV7I3jLA LNrqM6kg42lGQqPfK9g5ZxSBvjryz4iVvf7Ao5g4wOcKTnbH17Nk+GAGQsw+aFUSZlWL HObzrOFptMbW3aXTQLj3IZXvTtFlMcXByjC3kmn6xKqALtjcMa7ntOy6ihbCHFJQUA06 IW0w1LX7QQ7p0zXRTHcj5srlBwZE9sR+P1U0HUk34WnV1O2UGsIVzykSFIsy4iGci2Sn z85exzeT0MZ/wKIqFqaW6p6v6MxxUr9iUww/IYQi03OSOtrHLkpxzZdTQX/Y8pRVUhUE Vufg== 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:message-id:date:subject:cc:to :from:dkim-signature; bh=bLa+W545t9WD0mNKgiRrsLcKnG5ABMTRDZkInxVCBXw=; b=MpToXZr44P2v5mkP4hk28jgf8Ox51sAnV8zVw+2xrOEN7lU8WZuWV4rSQbq/bZ687v ZJ8g3bwjC4D7/03uOzWl8FX5z2kZxiis7qHN06Gb8Hq6ItzYfRS0iAHY72x7upXMOPGO jsse3o5kdFOZL8cslulN4HrNNkZ6spyGMSAVj4QHKr36frv57Q2Kdmq5O/olpigyYc29 8xvhmTR4E0M3z3Fsyd+0Mvs+yABH9HNS4eVlQNoJrE+ebef8Wmp8yc/U8hrsdcoSiHlx KbvPMKFD+0OCYtDLbJW/CPzpRYAXpSdxQi++4GZPoXhmG0ORuF6yO1LfRBzHHdL63o+K CqiA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=deLqnczb; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id bs19si16104647ejb.398.2021.07.11.23.38.42; Sun, 11 Jul 2021 23:39:05 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=deLqnczb; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238439AbhGLGkN (ORCPT + 99 others); Mon, 12 Jul 2021 02:40:13 -0400 Received: from mail.kernel.org ([198.145.29.99]:46882 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235372AbhGLG2l (ORCPT ); Mon, 12 Jul 2021 02:28:41 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id D0E0461165; Mon, 12 Jul 2021 06:24:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1626071095; bh=Xa8+FBpnYMDRZEFxwwyvfTN9bERzOX31SsPCkuJbhaY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=deLqnczbaMOnWBRg4xjQhvOFnOL+XtwC1znbG/y9JJukcEtKkjtwacb/JBhKnFH3G fy/WUetwMh0Crev1tLCNlWHpcVxGf/ztykXSq9dD2pKGSJU7yV0v9nq0ppHm0pyqHu O2N1SVJ0Ft8/3py53Uvb+/6i5UtuYWserebnvjUA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, "Paul E. McKenney" , Sasha Levin Subject: [PATCH 5.4 255/348] rcu: Invoke rcu_spawn_core_kthreads() from rcu_spawn_gp_kthread() Date: Mon, 12 Jul 2021 08:10:39 +0200 Message-Id: <20210712060736.660966878@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210712060659.886176320@linuxfoundation.org> References: <20210712060659.886176320@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Paul E. McKenney [ Upstream commit 8e4b1d2bc198e34b48fc7cc3a3c5a2fcb269e271 ] Currently, rcu_spawn_core_kthreads() is invoked via an early_initcall(), which works, except that rcu_spawn_gp_kthread() is also invoked via an early_initcall() and rcu_spawn_core_kthreads() relies on adjustments to kthread_prio that are carried out by rcu_spawn_gp_kthread(). There is no guaranttee of ordering among early_initcall() handlers, and thus no guarantee that kthread_prio will be properly checked and range-limited at the time that rcu_spawn_core_kthreads() needs it. In most cases, this bug is harmless. After all, the only reason that rcu_spawn_gp_kthread() adjusts the value of kthread_prio is if the user specified a nonsensical value for this boot parameter, which experience indicates is rare. Nevertheless, a bug is a bug. This commit therefore causes the rcu_spawn_core_kthreads() function to be invoked directly from rcu_spawn_gp_kthread() after any needed adjustments to kthread_prio have been carried out. Fixes: 48d07c04b4cc ("rcu: Enable elimination of Tree-RCU softirq processing") Signed-off-by: Paul E. McKenney Signed-off-by: Sasha Levin --- kernel/rcu/tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 4dfa9dd47223..fd37827eca5b 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -2498,7 +2498,6 @@ static int __init rcu_spawn_core_kthreads(void) "%s: Could not start rcuc kthread, OOM is now expected behavior\n", __func__); return 0; } -early_initcall(rcu_spawn_core_kthreads); /* * Handle any core-RCU processing required by a call_rcu() invocation. @@ -3315,6 +3314,7 @@ static int __init rcu_spawn_gp_kthread(void) wake_up_process(t); rcu_spawn_nocb_kthreads(); rcu_spawn_boost_kthreads(); + rcu_spawn_core_kthreads(); return 0; } early_initcall(rcu_spawn_gp_kthread); -- 2.30.2