Received: by 2002:a25:d783:0:0:0:0:0 with SMTP id o125csp434212ybg; Thu, 19 Mar 2020 02:26:26 -0700 (PDT) X-Google-Smtp-Source: ADFU+vt7mCoJ3xRf8SjU7Y1OQsizuEcUmoW1ALzVlE7tDiN96TrG4ys3Zf884UDPfYX0xWpgkwFO X-Received: by 2002:a9d:ed5:: with SMTP id 79mr1375045otj.249.1584609986082; Thu, 19 Mar 2020 02:26:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1584609986; cv=none; d=google.com; s=arc-20160816; b=RTgJocFbDLDA7N6djv/Vg0MYHUqqOk5cfkDGstzODz8RSc+yd6GUI4jQrTRxLFfS+5 g1xUfzyid9Pd1NjcLIV6yKlB9vMiHxWE3fAUGNBU23EfU0aOG973xkhRk6YGCR4iwEn2 p1cjoCTRKZdPXS4mWCqey380lsyHfEa73Hy1+iPog7/xe4Sxk3hYK1lB89zcWiQn0gfn bHmYVdqBOI9EeYpg5BZtEB5NGSjeciSRVowF+LZF3q5Q7LdkTWlHCUPlyDb5UhpxSJqj RDW5iYMcy92GD6z1NIa7cOVj5rzi0zE73Vwgbupn1J5nBnVl4bnl3jqk08PX3FHD4HjB RRyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date; bh=luFwBw0ZO+NxQ+3wTDVq6VUUSvFRAhNCxoBAz4ckby8=; b=U0INLsi5OgfqOsHw6HQZryeZOdxMsV7eV/rWGOagklQTNsJKlB/wU9nPaTIWKzJWJn BCJSm+iEpn9+TpfmExEnwKhFEqB0iP3FkX2ls41F4DFNc5xUAcpLa+2SAyzO1p/NE7t7 zqCkEfjx536/Xq7za0r+h0uCq2Pr/mDflxNbp98rH5/tilCU802+aSj+qfu4d7J5iTfz nfAm7CV93HrAtbN5OPInqdnq75yYfbOqD8I77MjgO8HQ+epNvWNksJGxpD6ZvI4/aHLo 21qodIojlrj5CIK4Eje9ZExrHUAPQPXcfOinHI83GK4mCG375WSKfjjk09XKwhWrWery XlQQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v6si758497oix.112.2020.03.19.02.26.12; Thu, 19 Mar 2020 02:26:26 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726892AbgCSJZ4 (ORCPT + 99 others); Thu, 19 Mar 2020 05:25:56 -0400 Received: from Galois.linutronix.de ([193.142.43.55]:60077 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725767AbgCSJZ4 (ORCPT ); Thu, 19 Mar 2020 05:25:56 -0400 Received: from bigeasy by Galois.linutronix.de with local (Exim 4.80) (envelope-from ) id 1jErQq-0004NV-Su; Thu, 19 Mar 2020 10:25:40 +0100 Date: Thu, 19 Mar 2020 10:25:40 +0100 From: Sebastian Andrzej Siewior To: Joel Fernandes Cc: "Paul E. McKenney" , Josh Triplett , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Thomas Glexiner , Scott Wood , Clark Williams , Juri Lelli , linux-rt-users@vger.kernel.org, rcu , LKML , Ingo Molnar Subject: Re: RCU use of swait Message-ID: <20200319092540.gpgzx2qao3r4okql@linutronix.de> References: <20200305003526.GA20601@paulmck-ThinkPad-P72> <20200305081135.yg7wryd3hrqzocrm@linutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2020-03-18 20:47:18 [-0400], Joel Fernandes wrote: > In RCU, there are some truly-atomic code sections containing an > swake_upXX() call, which would be considered atomic also on > PREEMPT_RT, one example is: > > rcu_core() contains an local_irq_{save,restore}() section. > > /* No grace period and unregistered callbacks? */ > if (!rcu_gp_in_progress() && > rcu_segcblist_is_enabled(&rdp->cblist) && !offloaded) { > local_irq_save(flags); > if (!rcu_segcblist_restempty(&rdp->cblist, RCU_NEXT_READY_TAIL)) > rcu_accelerate_cbs_unlocked(rnp, rdp); > local_irq_restore(flags); > } > > And rcu_accelerate_cbs_unlocked(rnp, rdp) calls rcu_gp_kthread_wake() > which does an swake_up_one(), so I think we will have to leave it as > swake_up() the way it is. There is also this: irq_exit() rcu_irq_exit() rcu_nmi_exit_common(true); rcu_prepare_for_idle() if (rcu_segcblist_pend_cbs(&rdp->cblist)) rcu_gp_kthread_wake() swake_up_one(&rcu_state.gp_wq); So I *think* this is another one. > thanks, > > - Joel Sebastian