Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp2474583ybv; Fri, 14 Feb 2020 19:53:29 -0800 (PST) X-Google-Smtp-Source: APXvYqz0lD60UU01Z1rE5zBhwnBPlFWIV7KM8rqE3J8W6dGOSmegZBdtajkKCDRfmKegSYLKLSIV X-Received: by 2002:a9d:6ac2:: with SMTP id m2mr4823792otq.191.1581738809022; Fri, 14 Feb 2020 19:53:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581738809; cv=none; d=google.com; s=arc-20160816; b=1IRvLdH3M1dlaM1QZ1xmA39PbRNllxIsZCUZ+bMu0cDxUJ0y3K0stFEFpKL4zlN1H3 fEikNQyEoZRKYALWwf39dDvkzr3QDSmBWfQEEOC4QgDI19j/GyejlzuVJ2xuzHS+FXuk ZJxHhMcBWBtHbYVt+bf1YlsgmUbNDCbwj8SCxYr+eV+3XdNMT2s/48trguxEl9ANJo7m tn7Iq5qx3RH5UfnJ4TjSlZHsg5FUQoJrMjNmCQ6UKRcul9M4TRBgUUa5k0xl5tBicge3 FX2l9cfTc86lOwJ7V2onK82cbyaD0O7yt0SosJk0DPn4iCMyaysn1A+bQWA2QpUy42z3 TvOw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date; bh=Wa79YvezjYYPVYD1ltIOMcUKu2nBasGiA78dVzlUSyo=; b=P1MXVQLdUweadjopgVcf38ijy6Phccu/bbM6lfa5v3cVPhAj5KzJ9Czz9TS32xIL0T /hqMNs6aK08hkiGOJEe9Pho0xl40m9KN0BgonM/V81/gM/oSWUmgQoXPlOxYSkb6xg0q qhVgPmovmJgwC56HWtlVzbmZDjLaiTqqa+M6x9MapruzcBlbFtlJhNSF9r2pJybsy5Ba iBI20ya0wKHJRsyQYqmgQ9pbHDRllMO4XywbD4E2dwaOx/S/wmELsCPAyJ0qHYGQ12RT GhE54F+uABWaTIrOvGdlFo182uQ7pgB647MwvWpVemp4WiUrowm5RvfSpBolrRguHnPg D4Ag== 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 d2si3925106oth.267.2020.02.14.19.53.16; Fri, 14 Feb 2020 19:53:29 -0800 (PST) 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 S1727740AbgBODxJ (ORCPT + 99 others); Fri, 14 Feb 2020 22:53:09 -0500 Received: from mail.kernel.org ([198.145.29.99]:52892 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727642AbgBODxI (ORCPT ); Fri, 14 Feb 2020 22:53:08 -0500 Received: from oasis.local.home (cpe-66-24-58-225.stny.res.rr.com [66.24.58.225]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id A404220718; Sat, 15 Feb 2020 03:53:06 +0000 (UTC) Date: Fri, 14 Feb 2020 22:53:05 -0500 From: Steven Rostedt To: paulmck@kernel.org Cc: rcu@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-team@fb.com, mingo@kernel.org, jiangshanlai@gmail.com, dipankar@in.ibm.com, akpm@linux-foundation.org, mathieu.desnoyers@efficios.com, josh@joshtriplett.org, tglx@linutronix.de, peterz@infradead.org, dhowells@redhat.com, edumazet@google.com, fweisbec@gmail.com, oleg@redhat.com, joel@joelfernandes.org, Linus Torvalds Subject: Re: [PATCH tip/core/rcu 22/30] rcu: Don't flag non-starting GPs before GP kthread is running Message-ID: <20200214225305.48550d6a@oasis.local.home> In-Reply-To: <20200214235607.13749-22-paulmck@kernel.org> References: <20200214235536.GA13364@paulmck-ThinkPad-P72> <20200214235607.13749-22-paulmck@kernel.org> X-Mailer: Claws Mail 3.17.3 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 14 Feb 2020 15:55:59 -0800 paulmck@kernel.org wrote: > @@ -1252,10 +1252,10 @@ static bool rcu_future_gp_cleanup(struct rcu_node *rnp) > */ > static void rcu_gp_kthread_wake(void) > { > - if ((current == rcu_state.gp_kthread && > + if ((current == READ_ONCE(rcu_state.gp_kthread) && > !in_irq() && !in_serving_softirq()) || > !READ_ONCE(rcu_state.gp_flags) || > - !rcu_state.gp_kthread) > + !READ_ONCE(rcu_state.gp_kthread)) > return; This looks buggy. You have two instances of READ_ONCE(rcu_state.gp_thread), which means they can be different. Is that intentional? -- Steve