Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp2738176pxv; Mon, 12 Jul 2021 00:19:45 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzsjHlBP7z+KoVsQMaxM0rkFKcdteA5I8CsvKHkJEjbunVffgmJUMUMup6KTZ5H7dJaKNEz X-Received: by 2002:a02:c806:: with SMTP id p6mr30091179jao.19.1626074385574; Mon, 12 Jul 2021 00:19:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626074385; cv=none; d=google.com; s=arc-20160816; b=kPlkQ9gbds5Vb07toh80ENQaLFelAAopd93Xko8ev1im5umsaH0n6ps786tY6MjJBo RO3j2Mt7mySWzFVZxvl3PDTWjac4wrMTna5gNuVwFkMJBcgtZhYicfDkqwuGkWJH2j1f Lh9gTUxUOibSg0DjfNmY0U/c0310KPsYiLVzl2ClOMNBCvoxYBTmPyXciZ4NcTOEVaWD LxTX70P0zSmCroN0XYkZCX4K6zbL9QRG1+yH1aghWNFJRIjUPDmfJQW+AE+Kjjcrlw/T kVJNA7/LwE8LhdwT9iyCx5ASAEoWW9oQiKMkbSbQoWQOxG800lliHx2+uxzLUu67+Zla BSdg== 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=fUMM+91r993cDG8Mb+ZBReH3BcNo7m+QbPlFKLGDH4Y=; b=NMVCzcMPmReDzJpIsunl5ixV20/err+jlSBmwzxFHTqvYaZotAf7tMzlSj+Kv+edzR tsOk6Q0NoCANaUBu9vBifBgcIRdNnZKeQIYH0bmBryA/nG7M+SPpxvO7tn+D/ddQxBIL +Wv5YuvsXrY60ga+lt5Qri8m8UTlAA1cINGVzR+VG4komdvKQmC963jHts2l9cLFNJKG +vOWy1PDdSOtgHYEzFjrOQKxFg//A8waMaimge2ASZsbbA7LqF59cv/4NAt+5vANrB2o dPVoT6/sM1zL5Cq2Wu4DSBiAs4WQ7M0WYgrh7NpG++3RgnJF03N8MpR0tzjrUTI2jLp+ ceDQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="VNK/Nb5f"; 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 s4si17148985ilv.54.2021.07.12.00.19.33; Mon, 12 Jul 2021 00:19:45 -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="VNK/Nb5f"; 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 S1344444AbhGLHUe (ORCPT + 99 others); Mon, 12 Jul 2021 03:20:34 -0400 Received: from mail.kernel.org ([198.145.29.99]:48262 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239188AbhGLGta (ORCPT ); Mon, 12 Jul 2021 02:49:30 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 4F989610FA; Mon, 12 Jul 2021 06:46:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1626072392; bh=Iq+o5OeMMpRVe3gVKnWsaNnrPxGYSR9SQp7q+a1GDsE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VNK/Nb5fwxviO3eA4gaAFQyjVfHY1MHJOqbJFn85uKbKhzB+rxvZWDf0tb33VnC1g scW6KqfzWYXFjwaYfU/c3ucXtVeFbDDQzDXOqZrBVouOlQV3Ho2rh7Ieqlk80X0JcZ cipxwRaW7uHESxGMI2Rsr8LPkHLIS37Xj0ORzWVA= 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.10 436/593] rcu: Invoke rcu_spawn_core_kthreads() from rcu_spawn_gp_kthread() Date: Mon, 12 Jul 2021 08:09:56 +0200 Message-Id: <20210712060936.633734952@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210712060843.180606720@linuxfoundation.org> References: <20210712060843.180606720@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 61e250cdd7c9..45b60e997461 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -2837,7 +2837,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. @@ -4273,6 +4272,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