Received: by 2002:a05:6358:1087:b0:cb:c9d3:cd90 with SMTP id j7csp355066rwi; Wed, 12 Oct 2022 21:57:11 -0700 (PDT) X-Google-Smtp-Source: AMsMyM60Qv9s63zlkCwOUckdNF4aDdrYNi5Eqo04iSIo+xfAOBA996cRhwPT37HrQoWfv7mwHLYo X-Received: by 2002:a17:90a:5796:b0:20d:65ec:4e70 with SMTP id g22-20020a17090a579600b0020d65ec4e70mr9200017pji.231.1665637030406; Wed, 12 Oct 2022 21:57:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1665637030; cv=none; d=google.com; s=arc-20160816; b=jEAVibLcIWT6rQo9NfadjcZXwqwDw+60MrWdlmKdTJxd3QCbq/hw0ioR2rre5txL4n P8cDpMoBahhyu2bzw2dl9PbiqxpdgLqVP7Xxofo0E+vryDPtZUEe6XBolxje9+inQmo5 1peTbVugA3AEc5Zj7h0I4tyohBHO5HvIqzfAE3DlW3OcWP12wKrBENMWZhB1/gkLI5WB aJGqcvBt8cgtli4HZwqwvAh0N/YECpCzBpUtNT0GbYXRre0PpjVOqM5qWUau/6rgtR2y O8R9ZzXFwFAbjtlsYy+safs50XNXoxNP+wPJv5wr2aQnsx2uyeG3ypEMcYmt0HjiUma3 FEkg== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=0KcaQuqIdLdBx4Ms9M4utRNa/93Rbw4MyePCI2bWjak=; b=TarxBus5nZPgkNzmti/QT60/5j+Gmnf6QY6ojynrpgrfpDWi/InO9ZHBDrUvw/TLOI vXqECqOgiRnxeU85QAvd2ON31+OxBKze6kdo1NONn957UgiO9OOPRu5M3u4F4DJlaSJO 1LvnGzw1rnTlzd7n9YMCYQO2c0sj2gObLOXmE7nKGdum6BeVSO2BmyXdXGShQ66yTIbr 0XRLJUTG7F+NYy66hR9sy67WsC+RykOMVR3BzrwtZBjZ2oBIXSmcAzZSFyhvGqdhNxx5 n+g9vNrl07k8Vd+vR8+Gd41CbjFlea3NkPe75e8oQRZY7jpRlOfuBPz+rDp+2h6xle4O V+pw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=hhn2Jf2H; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id a18-20020a17090a8c1200b0020a6dcc726asi4200612pjo.50.2022.10.12.21.56.52; Wed, 12 Oct 2022 21:57:10 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=hhn2Jf2H; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229462AbiJMEfy (ORCPT + 99 others); Thu, 13 Oct 2022 00:35:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48508 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229484AbiJMEfe (ORCPT ); Thu, 13 Oct 2022 00:35:34 -0400 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D0615D57D0; Wed, 12 Oct 2022 21:35:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1665635732; x=1697171732; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=iVsDzfKMrTf4dOi/qkyEwaNKYWbENXdJdKPUtuIzQvE=; b=hhn2Jf2HyaR/4HE/fo+5JiOajosAQFWYcfyH8hig+bKjB5JK31iZSwJY ONLa/ZAcpqY9deAmbhDEC8Sli7iezC0qaAu3y7WrH+vkjlbbzhNEJGmxB iAIftNoc6d2hNP0Roa4rJ5qk9aYJjYMt6vOAGbvm/VmA12+izmX2+lIQa PnStjxb2pALjV9AOze0y49DMIaCFX3Bk6H6obpFCLx/shTb4L2D9BOTVm j2k9Pv/UwFDiHH+lz6amUvaKcy/kruPC9eFbGmiYX6opoPvRO69P5Dwfx bm6KwyI5+aB26NtfJBSkgy3WDI6ZzHYel1vj71L47Wjf8wOhB71OF5Itj g==; X-IronPort-AV: E=McAfee;i="6500,9779,10498"; a="306036833" X-IronPort-AV: E=Sophos;i="5.95,180,1661842800"; d="scan'208";a="306036833" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Oct 2022 21:35:30 -0700 X-IronPort-AV: E=McAfee;i="6500,9779,10498"; a="629371535" X-IronPort-AV: E=Sophos;i="5.95,180,1661842800"; d="scan'208";a="629371535" Received: from zq-optiplex-7090.bj.intel.com ([10.238.156.129]) by fmsmga007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Oct 2022 21:35:28 -0700 From: Zqiang To: paulmck@kernel.org, frederic@kernel.org, quic_neeraju@quicinc.com, joel@joelfernandes.org Cc: rcu@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] rcu: Fix use __this_cpu_read() warning in preemptible code Date: Thu, 13 Oct 2022 12:41:48 +0800 Message-Id: <20221013044148.2894320-1-qiang1.zhang@intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org BUG: using __this_cpu_read() in preemptible [00000000] code: rcu_torture_fqs/398 caller is __this_cpu_preempt_check+0x13/0x20 CPU: 3 PID: 398 Comm: rcu_torture_fqs Not tainted 6.0.0-rc1-yoctodev-standard+ Call Trace: dump_stack_lvl+0x5b/0x86 dump_stack+0x10/0x16 check_preemption_disabled+0xe5/0xf0 __this_cpu_preempt_check+0x13/0x20 rcu_force_quiescent_state.part.0+0x1c/0x170 rcu_force_quiescent_state+0x1e/0x30 rcu_torture_fqs+0xca/0x160 ? rcu_torture_boost+0x430/0x430 kthread+0x192/0x1d0 ? kthread_complete_and_exit+0x30/0x30 ret_from_fork+0x22/0x30 When enable rcutorture.fqs_duration, the rcu_force_quiescent_state() be invoked in rcu_torture_fqs task context, invoke __this_cpu_read() in preemptible code section will trigger the above calltrace. This commit convert __this_cpu_read() to raw_cpu_read() to avoid this warning. Signed-off-by: Zqiang --- 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 96d678c9cfb6..282002e62cf3 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -2436,7 +2436,7 @@ void rcu_force_quiescent_state(void) struct rcu_node *rnp_old = NULL; /* Funnel through hierarchy to reduce memory contention. */ - rnp = __this_cpu_read(rcu_data.mynode); + rnp = raw_cpu_read(rcu_data.mynode); for (; rnp != NULL; rnp = rnp->parent) { ret = (READ_ONCE(rcu_state.gp_flags) & RCU_GP_FLAG_FQS) || !raw_spin_trylock(&rnp->fqslock); -- 2.25.1