From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753816AbbJGMDz (ORCPT ); Wed, 7 Oct 2015 08:03:55 -0400 Received: from bombadil.infradead.org ([198.137.202.9]:47160 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753739AbbJGMDw (ORCPT ); Wed, 7 Oct 2015 08:03:52 -0400 Date: Wed, 7 Oct 2015 14:03:37 +0200 From: Peter Zijlstra To: Mathieu Desnoyers Cc: "Paul E. McKenney" , linux-kernel@vger.kernel.org, Ingo Molnar , Lai Jiangshan , dipankar@in.ibm.com, Andrew Morton , josh@joshtriplett.org, Thomas Gleixner , rostedt , dhowells@redhat.com, edumazet@google.com, dvhart@linux.intel.com, fweisbec@gmail.com, oleg@redhat.com, bobby prani Subject: Re: [PATCH tip/core/rcu 02/18] rcu: Move rcu_report_exp_rnp() to allow consolidation Message-ID: <20151007120337.GL11639@twins.programming.kicks-ass.net> References: <20151006162907.GA12020@linux.vnet.ibm.com> <1444148977-14108-1-git-send-email-paulmck@linux.vnet.ibm.com> <1444148977-14108-2-git-send-email-paulmck@linux.vnet.ibm.com> <20151006202937.GX3604@twins.programming.kicks-ass.net> <20151006205850.GW3910@linux.vnet.ibm.com> <20151007075114.GW2881@worktop.programming.kicks-ass.net> <941567906.21756.1444207325021.JavaMail.zimbra@efficios.com> <20151007110120.GE17308@twins.programming.kicks-ass.net> <20151007115046.GK11639@twins.programming.kicks-ass.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20151007115046.GK11639@twins.programming.kicks-ass.net> User-Agent: Mutt/1.5.21 (2012-12-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Oct 07, 2015 at 01:50:46PM +0200, Peter Zijlstra wrote: > @@ -1512,10 +1554,8 @@ rcu_start_future_gp(struct rcu_node *rnp, struct rcu_data *rdp, > * hold it, acquire the root rcu_node structure's lock in order to > * start one (if needed). > */ > - if (rnp != rnp_root) { > - raw_spin_lock(&rnp_root->lock); > - smp_mb__after_unlock_lock(); > - } > + if (rnp != rnp_root) > + raw_spin_lock_rcu_node(rnp); rnp_root > @@ -2312,8 +2343,7 @@ static void rcu_report_unblock_qs_rnp(struct rcu_state *rsp, > gps = rnp->gpnum; > mask = rnp->grpmask; > raw_spin_unlock(&rnp->lock); /* irqs remain disabled. */ > - raw_spin_lock(&rnp_p->lock); /* irqs already disabled. */ > - smp_mb__after_unlock_lock(); > + raw_spin_lock_rcu_node(rnp); /* irqs already disabled. */ rnp_p