Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp3890232pxb; Tue, 2 Mar 2021 00:52:00 -0800 (PST) X-Google-Smtp-Source: ABdhPJwv22c1P9riUOTyI+jflyjKvgoz+tV/LUAI1LjyFVF4AsHfylPcmflfxFqb0W29NNdiAcou X-Received: by 2002:a05:6402:180b:: with SMTP id g11mr9907779edy.195.1614675119819; Tue, 02 Mar 2021 00:51:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614675119; cv=none; d=google.com; s=arc-20160816; b=TPybRfX8e2CjecPk2DBrJC+ZBOcb2gyK3sUzUFJcxLGb8nhNaTZ0yp1s8ZijgWyrYp 0KRYNPK8v7nsJj5T5Wc32zpXm5xeZDHDwLIhsCz5es8saZe/hBd1OA7Lh6t0UQ00qjoU v7XhNDx3/xDkUp3FVCiIU/Nyn7hfZJpGyGEqPDqFS0gWdkwBNKuKw5Trnlz4GjDNodS5 OWkRCwP+o02VTCCIoQ5tRz3wsWAF9Ej6b0stEHp1+wyjzl2sSrVO/ldXq96Zp3Y1e37I 6FRstrB+TyYZKwZHxiLM4gySQ2R3Dg8qhXMvNonvK4M5NV8LUPlCBU+e9SYjsHQGTYoO TbZA== 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=sP44nbiSO9nhCNWHqIF1iXCsxRHiC5JDsmOmCBD1ZNo=; b=EaE1DEspKHyjy2vLXiuWBq4rf1XYZV5ROL2ZzmRir6L3nTVxl/0CJrWbE0KDbvf8Bq 3FX8nUAyvcNn5s7jn1wLxwgxvLtz9uA9fgMRvGr8tZCq8ahrienlHcBL49p89rcO4/+7 RqEZzXVLbhmkSS44S9jRvdXYyNYGPNZ00J+f99DviE+nF0IWOMJD95QAnK8Zpiv4ZIPA qZ1ylyHPoJYJsx6Ucxt2EXzMa1q194M9vBOvg59KqWvcZ36rNtYtYsf/0SMAhWS3wL1Q nFUT9Z+zBGxOAIjgxGU7H/xJKCNaGDjHs5U1wTwIfzWEilqZmxS9dYAvUf4VTBrkEg8o trpQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=XovlqSfk; 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 d11si12062549edv.530.2021.03.02.00.51.35; Tue, 02 Mar 2021 00:51:59 -0800 (PST) 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=XovlqSfk; 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 S1378739AbhCBBH7 (ORCPT + 99 others); Mon, 1 Mar 2021 20:07:59 -0500 Received: from mail.kernel.org ([198.145.29.99]:34978 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240945AbhCATBU (ORCPT ); Mon, 1 Mar 2021 14:01:20 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id 1CBBD65086; Mon, 1 Mar 2021 17:29:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1614619760; bh=7QZbEgsuRYGNKjRVN5gXd3wsekiJW9m7CuB+SQT1stM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XovlqSfkmBhjfCOJKkYJRYhj1ljMCpalsZJhWQARiK+ruStuE+40Zu1AOupvLktM2 juEXbGU2PULxHX0YadzZjEjvrQPjYjemQ3OwkPhD/HLvDygUL9Ha0arFxv5s/VlXrL advN2f2o2lxgg4soYLg85i+WsQdk++O3YX23Lk7Q= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Frederic Weisbecker , "Peter Zijlstra (Intel)" , Ingo Molnar Subject: [PATCH 5.10 572/663] rcu: Pull deferred rcuog wake up to rcu_eqs_enter() callers Date: Mon, 1 Mar 2021 17:13:40 +0100 Message-Id: <20210301161210.170092926@linuxfoundation.org> X-Mailer: git-send-email 2.30.1 In-Reply-To: <20210301161141.760350206@linuxfoundation.org> References: <20210301161141.760350206@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: Frederic Weisbecker commit 54b7429efffc99e845ba9381bee3244f012a06c2 upstream. Deferred wakeup of rcuog kthreads upon RCU idle mode entry is going to be handled differently whether initiated by idle, user or guest. Prepare with pulling that control up to rcu_eqs_enter() callers. Signed-off-by: Frederic Weisbecker Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Ingo Molnar Cc: stable@vger.kernel.org Link: https://lkml.kernel.org/r/20210131230548.32970-2-frederic@kernel.org Signed-off-by: Greg Kroah-Hartman --- kernel/rcu/tree.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -636,7 +636,6 @@ static noinstr void rcu_eqs_enter(bool u trace_rcu_dyntick(TPS("Start"), rdp->dynticks_nesting, 0, atomic_read(&rdp->dynticks)); WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) && !user && !is_idle_task(current)); rdp = this_cpu_ptr(&rcu_data); - do_nocb_deferred_wakeup(rdp); rcu_prepare_for_idle(); rcu_preempt_deferred_qs(current); @@ -664,7 +663,10 @@ static noinstr void rcu_eqs_enter(bool u */ void rcu_idle_enter(void) { + struct rcu_data *rdp = this_cpu_ptr(&rcu_data); + lockdep_assert_irqs_disabled(); + do_nocb_deferred_wakeup(rdp); rcu_eqs_enter(false); } EXPORT_SYMBOL_GPL(rcu_idle_enter); @@ -683,7 +685,14 @@ EXPORT_SYMBOL_GPL(rcu_idle_enter); */ noinstr void rcu_user_enter(void) { + struct rcu_data *rdp = this_cpu_ptr(&rcu_data); + lockdep_assert_irqs_disabled(); + + instrumentation_begin(); + do_nocb_deferred_wakeup(rdp); + instrumentation_end(); + rcu_eqs_enter(true); } #endif /* CONFIG_NO_HZ_FULL */