From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751383AbdAPH6V (ORCPT ); Mon, 16 Jan 2017 02:58:21 -0500 Received: from relay3-d.mail.gandi.net ([217.70.183.195]:33347 "EHLO relay3-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751028AbdAPH6S (ORCPT ); Mon, 16 Jan 2017 02:58:18 -0500 X-Originating-IP: 50.39.169.170 Date: Sun, 15 Jan 2017 23:58:07 -0800 From: Josh Triplett To: "Paul E. McKenney" Cc: linux-kernel@vger.kernel.org, mingo@kernel.org, jiangshanlai@gmail.com, dipankar@in.ibm.com, akpm@linux-foundation.org, mathieu.desnoyers@efficios.com, tglx@linutronix.de, peterz@infradead.org, 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 tip/core/rcu 08/20] rcu: Add long-term CPU kicking Message-ID: <20170116075806.toocj5tswpjghd4l@x> References: <20170114091255.GA20854@linux.vnet.ibm.com> <1484385201-22227-8-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: <1484385201-22227-8-git-send-email-paulmck@linux.vnet.ibm.com> User-Agent: NeoMutt/20161126 (1.7.1) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, Jan 14, 2017 at 01:13:09AM -0800, Paul E. McKenney wrote: > Commit d2db185bfee8 ("rcu: Remove short-term CPU kicking") removed > frequent calls to resched_cpu(), which means that the only time > resched_cpu() is invoked is after an RCU CPU stall warning. Although > this is good from an avoid-IPIs perspective, we should try to break > things loose -before- splatting. This commit therefore starts invoking > resched_cpu() for each holdout at each force-quiescent-state interval > that is more than halfway through the stall-warning interval. > > Signed-off-by: Paul E. McKenney Could you please reverse the order of patches 7 and 8, so that unnecessary splats don't occur between the two? For the patch itself: Reviewed-by: Josh Triplett > kernel/rcu/tree.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c > index 3c0d6c129718..5a4aaad75e76 100644 > --- a/kernel/rcu/tree.c > +++ b/kernel/rcu/tree.c > @@ -1220,6 +1220,13 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rdp, > rdp->rsp->jiffies_resched += 5; /* Re-enable beating. */ > } > > + /* > + * If more than halfway to RCU CPU stall-warning time, do > + * a resched_cpu() to try to loosen things up a bit. > + */ > + if (jiffies - rdp->rsp->gp_start > rcu_jiffies_till_stall_check() / 2) > + resched_cpu(rdp->cpu); > + > return 0; > } > > -- > 2.5.2 >