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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 00705C433FE for ; Fri, 1 Oct 2021 17:50:30 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id D230D61ACD for ; Fri, 1 Oct 2021 17:50:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1355423AbhJARwN (ORCPT ); Fri, 1 Oct 2021 13:52:13 -0400 Received: from foss.arm.com ([217.140.110.172]:49438 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231852AbhJARwL (ORCPT ); Fri, 1 Oct 2021 13:52:11 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id A9C94106F; Fri, 1 Oct 2021 10:50:26 -0700 (PDT) Received: from e113632-lin (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 08A123F70D; Fri, 1 Oct 2021 10:50:24 -0700 (PDT) From: Valentin Schneider To: Frederic Weisbecker , "Paul E . McKenney" Cc: LKML , Thomas Gleixner , Sebastian Andrzej Siewior , Peter Zijlstra , Uladzislau Rezki , Frederic Weisbecker , Boqun Feng , Neeraj Upadhyay , Josh Triplett , Joel Fernandes , rcu@vger.kernel.org Subject: Re: [PATCH 04/11] rcu/nocb: Make rcu_core() callbacks acceleration preempt-safe In-Reply-To: <20210929221012.228270-5-frederic@kernel.org> References: <20210929221012.228270-1-frederic@kernel.org> <20210929221012.228270-5-frederic@kernel.org> Date: Fri, 01 Oct 2021 18:50:22 +0100 Message-ID: <87bl48my75.mognet@arm.com> MIME-Version: 1.0 Content-Type: text/plain Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 30/09/21 00:10, Frederic Weisbecker wrote: > From: Thomas Gleixner > > While reporting a quiescent state for a given CPU, rcu_core() takes > advantage of the freshly loaded grace period sequence number and the > locked rnp to accelerate the callbacks whose sequence number have been > assigned a stale value. > > This action is only necessary when the rdp isn't offloaded, otherwise > the NOCB kthreads already take care of the callbacks progression. > > However the check for the offloaded state is volatile because it is > performed outside the IRQs disabled section. It's possible for the > offloading process to preempt rcu_core() at that point on PREEMPT_RT. > > This is dangerous because rcu_core() may end up accelerating callbacks > concurrently with NOCB kthreads without appropriate locking. > > Fix this with moving the offloaded check inside the rnp locking section. > > Reported-by: Valentin Schneider > Signed-off-by: Thomas Gleixner > Cc: Valentin Schneider > Cc: Peter Zijlstra > Cc: Sebastian Andrzej Siewior > Cc: Josh Triplett > Cc: Joel Fernandes > Cc: Boqun Feng > Cc: Neeraj Upadhyay > Cc: Uladzislau Rezki > Cc: Thomas Gleixner > Signed-off-by: Frederic Weisbecker Reviewed-by: Valentin Schneider