Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753047AbbGAKHj (ORCPT ); Wed, 1 Jul 2015 06:07:39 -0400 Received: from casper.infradead.org ([85.118.1.10]:36423 "EHLO casper.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752770AbbGAKHd (ORCPT ); Wed, 1 Jul 2015 06:07:33 -0400 Date: Wed, 1 Jul 2015 12:07:30 +0200 From: Peter Zijlstra To: "Paul E. McKenney" Cc: linux-kernel@vger.kernel.org, mingo@kernel.org, laijs@cn.fujitsu.com, dipankar@in.ibm.com, akpm@linux-foundation.org, mathieu.desnoyers@efficios.com, josh@joshtriplett.org, tglx@linutronix.de, rostedt@goodmis.org, dhowells@redhat.com, edumazet@google.com, dvhart@linux.intel.com, fweisbec@gmail.com, oleg@redhat.com, bobby.prani@gmail.com Subject: Re: [PATCH RFC tip/core/rcu 5/5] rcu: Limit expedited helping to every 10 ms or every 4th GP Message-ID: <20150701100730.GQ19282@twins.programming.kicks-ass.net> References: <20150630214805.GA7795@linux.vnet.ibm.com> <1435700910-9104-1-git-send-email-paulmck@linux.vnet.ibm.com> <1435700910-9104-5-git-send-email-paulmck@linux.vnet.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1435700910-9104-5-git-send-email-paulmck@linux.vnet.ibm.com> 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 Content-Length: 1544 Lines: 48 On Tue, Jun 30, 2015 at 02:48:30PM -0700, Paul E. McKenney wrote: > From: "Paul E. McKenney" This seems like a good place to explain why this is a desirable thing, no? Why would you want to limit this? > Signed-off-by: Paul E. McKenney > --- > kernel/rcu/tree.c | 15 ++++++++++++--- > 1 file changed, 12 insertions(+), 3 deletions(-) > > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c > index 308b6acb4260..247aa1120c4c 100644 > --- a/kernel/rcu/tree.c > +++ b/kernel/rcu/tree.c > @@ -3505,10 +3505,19 @@ void synchronize_sched_expedited(void) > !atomic_read(&rsp->expedited_need_qs)); > > rcu_exp_gp_seq_end(rsp); > - mutex_unlock(&rnp->exp_funnel_mutex); > smp_mb(); /* ensure subsequent action seen after grace period. */ > - if (rsp->gp_kthread && rcu_gp_in_progress(rsp)) > - wake_up(&rsp->gp_wq); > + if (rsp->gp_kthread && rcu_gp_in_progress(rsp)) { > + static unsigned long nextgp; > + static unsigned long nextjiffy; > + > + if (time_after_eq(jiffies, nextgp) || > + ULONG_CMP_GE(rsp->gpnum, nextgp)) { > + nextgp = rsp->gpnum + 4; > + nextjiffy = jiffies + 10; > + wake_up(&rsp->gp_wq); > + } > + } > + mutex_unlock(&rnp->exp_funnel_mutex); > > put_online_cpus(); > } > -- > 1.8.1.5 > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/