From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Josh Triplett <josh@joshtriplett.org>
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 v2 tip/core/rcu 07/18] rcu: Add long-term CPU kicking
Date: Mon, 23 Jan 2017 11:34:45 -0800 [thread overview]
Message-ID: <20170123193445.GI28085@linux.vnet.ibm.com> (raw)
In-Reply-To: <20170121204255.ojlqgfk6lh7lac76@x>
On Sat, Jan 21, 2017 at 12:42:55PM -0800, Josh Triplett wrote:
> On Tue, Jan 17, 2017 at 06:53:46PM -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.
>
> Just realized an issue with this commit message: you're referring to
> what now appears as patch 8 in the past tense as something already done,
> and with a commit ID that probably doesn't work anymore. You need to
> rephrase this to describe how it leads to a *subsequent* change rather
> than fixing something already changed.
>
> With the commit message fixed:
> Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Good point! It now reads as follows:
------------------------------------------------------------------------
This commit prepares for the removal of short-term CPU kicking (in a
subsequent commit). It does so by starting to invoke resched_cpu()
for each holdout at each force-quiescent-state interval that is more
than halfway through the stall-warning interval.
------------------------------------------------------------------------
Does that work?
Thanx, Paul
> > Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
>
>
>
> > ---
> > kernel/rcu/tree.c | 6 ++++++
> > 1 file changed, 6 insertions(+)
> >
> > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
> > index 83bf054e194e..0e61b62e3f4a 100644
> > --- a/kernel/rcu/tree.c
> > +++ b/kernel/rcu/tree.c
> > @@ -1225,6 +1225,12 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rdp,
> > rdp->rsp->gp_start + 2 * jiffies_till_sched_qs) ||
> > ULONG_CMP_GE(jiffies, rdp->rsp->gp_start + jiffies_till_sched_qs))
> > resched_cpu(rdp->cpu); /* Force CPU into scheduler. */
> > + /*
> > + * 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
> >
>
next prev parent reply other threads:[~2017-01-23 19:34 UTC|newest]
Thread overview: 87+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-14 9:12 [PATCH tip/core/rcu 0/20] Miscellaneous fixes for 4.11 Paul E. McKenney
2017-01-14 9:13 ` [PATCH tip/core/rcu 01/20] rcu: update: Make RCU_EXPEDITE_BOOT be the default Paul E. McKenney
2017-01-14 9:13 ` [PATCH tip/core/rcu 02/20] lockdep: Make RCU suspicious-access splats use pr_err Paul E. McKenney
2017-01-16 7:53 ` Josh Triplett
2017-01-17 1:06 ` Paul E. McKenney
2017-01-16 17:21 ` Peter Zijlstra
2017-01-16 20:59 ` Paul E. McKenney
2017-01-14 9:13 ` [PATCH tip/core/rcu 03/20] Fix: Disable sys_membarrier when nohz_full is enabled Paul E. McKenney
2017-01-14 9:13 ` [PATCH tip/core/rcu 04/20] rcu: Only dump stalled-tasks stacks if there was a real stall Paul E. McKenney
2017-01-14 9:13 ` [PATCH tip/core/rcu 05/20] rcu: Remove unneeded rcu_process_callbacks() declarations Paul E. McKenney
2017-01-14 9:13 ` [PATCH tip/core/rcu 06/20] rcu: Remove unused but set variable Paul E. McKenney
2017-01-14 9:13 ` [PATCH tip/core/rcu 07/20] rcu: Remove short-term CPU kicking Paul E. McKenney
2017-01-14 9:13 ` [PATCH tip/core/rcu 08/20] rcu: Add long-term " Paul E. McKenney
2017-01-16 7:58 ` Josh Triplett
2017-01-17 1:07 ` Paul E. McKenney
2017-01-14 9:13 ` [PATCH tip/core/rcu 09/20] rcu: Once again use NMI-based stack traces in stall warnings Paul E. McKenney
2017-01-14 9:13 ` [PATCH tip/core/rcu 10/20] rcu: Add functions to test for trivial grace periods Paul E. McKenney
2017-01-16 8:01 ` Josh Triplett
2017-01-17 0:32 ` Paul E. McKenney
2017-01-14 9:13 ` [PATCH tip/core/rcu 11/20] sched,rcu: Make cond_resched() provide RCU quiescent state Paul E. McKenney
2017-01-16 8:08 ` Josh Triplett
2017-01-16 11:38 ` Paul E. McKenney
2017-01-16 17:11 ` Peter Zijlstra
2017-01-17 0:54 ` Paul E. McKenney
2017-01-17 10:51 ` Michal Hocko
2017-01-17 12:05 ` Paul E. McKenney
2017-01-17 12:11 ` Michal Hocko
2017-01-18 2:10 ` Paul E. McKenney
2017-01-14 9:13 ` [PATCH tip/core/rcu 12/20] rcu: Re-enable TASKS_RCU for User Mode Linux Paul E. McKenney
2017-01-14 9:13 ` [PATCH tip/core/rcu 13/20] rcu: Don't wake rcuc/X kthreads on NOCB CPUs Paul E. McKenney
2017-01-14 9:13 ` [PATCH tip/core/rcu 14/20] rcu: Add comment headers to expedited-grace-period counter functions Paul E. McKenney
2017-01-14 9:13 ` [PATCH tip/core/rcu 15/20] rcu: Make rcu_cpu_starting() use its "cpu" argument Paul E. McKenney
2017-01-14 9:13 ` [PATCH tip/core/rcu 16/20] rcu: Enable RCU tracepoints by default to aid in debugging Paul E. McKenney
2017-01-14 9:13 ` [PATCH tip/core/rcu 17/20] rcu: Fix comment in rcu_organize_nocb_kthreads() Paul E. McKenney
2017-01-14 9:13 ` [PATCH tip/core/rcu 18/20] llist: Clarify comments about when locking is needed Paul E. McKenney
2017-01-14 9:13 ` [PATCH tip/core/rcu 19/20] rcu: Eliminate unused expedited_normal counter Paul E. McKenney
2017-01-14 9:13 ` [PATCH tip/core/rcu 20/20] rcu: Add lockdep checks to synchronous expedited primitives Paul E. McKenney
2017-01-16 8:09 ` [PATCH tip/core/rcu 0/20] Miscellaneous fixes for 4.11 Josh Triplett
2017-01-17 1:07 ` Paul E. McKenney
2017-01-18 2:53 ` Paul E. McKenney
2017-01-18 2:53 ` [PATCH v2 tip/core/rcu 01/18] rcu: update: Make RCU_EXPEDITE_BOOT be the default Paul E. McKenney
2017-01-18 2:53 ` [PATCH v2 tip/core/rcu 02/18] lockdep: Make RCU suspicious-access splats use pr_err Paul E. McKenney
2017-01-21 20:40 ` Josh Triplett
2017-01-23 19:30 ` Paul E. McKenney
2017-01-23 22:33 ` Josh Triplett
2017-01-24 0:13 ` Paul E. McKenney
2017-01-18 2:53 ` [PATCH v2 tip/core/rcu 03/18] Fix: Disable sys_membarrier when nohz_full is enabled Paul E. McKenney
2017-01-18 2:53 ` [PATCH v2 tip/core/rcu 04/18] rcu: Only dump stalled-tasks stacks if there was a real stall Paul E. McKenney
2017-01-18 2:53 ` [PATCH v2 tip/core/rcu 05/18] rcu: Remove unneeded rcu_process_callbacks() declarations Paul E. McKenney
2017-01-18 2:53 ` [PATCH v2 tip/core/rcu 06/18] rcu: Remove unused but set variable Paul E. McKenney
2017-01-18 2:53 ` [PATCH v2 tip/core/rcu 07/18] rcu: Add long-term CPU kicking Paul E. McKenney
2017-01-21 20:41 ` Josh Triplett
2017-01-21 20:42 ` Josh Triplett
2017-01-23 19:34 ` Paul E. McKenney [this message]
2017-01-23 20:25 ` Josh Triplett
2017-01-18 2:53 ` [PATCH v2 tip/core/rcu 08/18] rcu: Remove short-term " Paul E. McKenney
2017-01-21 20:43 ` Josh Triplett
2017-01-23 19:36 ` Paul E. McKenney
2017-01-18 2:53 ` [PATCH v2 tip/core/rcu 09/18] rcu: Once again use NMI-based stack traces in stall warnings Paul E. McKenney
2017-01-18 2:53 ` [PATCH v2 tip/core/rcu 10/18] rcu: Re-enable TASKS_RCU for User Mode Linux Paul E. McKenney
2017-01-18 2:53 ` [PATCH v2 tip/core/rcu 11/18] rcu: Don't wake rcuc/X kthreads on NOCB CPUs Paul E. McKenney
2017-01-18 2:53 ` [PATCH v2 tip/core/rcu 12/18] rcu: Add comment headers to expedited-grace-period counter functions Paul E. McKenney
2017-01-18 2:53 ` [PATCH v2 tip/core/rcu 13/18] rcu: Make rcu_cpu_starting() use its "cpu" argument Paul E. McKenney
2017-01-18 2:53 ` [PATCH v2 tip/core/rcu 14/18] rcu: Enable RCU tracepoints by default to aid in debugging Paul E. McKenney
2017-01-18 2:53 ` [PATCH v2 tip/core/rcu 15/18] rcu: Fix comment in rcu_organize_nocb_kthreads() Paul E. McKenney
2017-01-18 2:53 ` [PATCH v2 tip/core/rcu 16/18] llist: Clarify comments about when locking is needed Paul E. McKenney
2017-01-18 2:53 ` [PATCH v2 tip/core/rcu 17/18] rcu: Eliminate unused expedited_normal counter Paul E. McKenney
2017-01-18 2:53 ` [PATCH v2 tip/core/rcu 18/18] rcu: Add lockdep checks to synchronous expedited primitives Paul E. McKenney
2017-01-24 21:51 ` [PATCH v3 tip/core/rcu 0/18] Miscellaneous fixes for 4.11 Paul E. McKenney
2017-01-24 21:51 ` [PATCH v3 tip/core/rcu 01/18] rcu: update: Make RCU_EXPEDITE_BOOT be the default Paul E. McKenney
2017-01-24 21:51 ` [PATCH v3 tip/core/rcu 02/18] lockdep: Make RCU suspicious-access splats use pr_err Paul E. McKenney
2017-01-24 21:51 ` [PATCH v3 tip/core/rcu 03/18] Fix: Disable sys_membarrier when nohz_full is enabled Paul E. McKenney
2017-01-24 21:51 ` [PATCH v3 tip/core/rcu 04/18] rcu: Only dump stalled-tasks stacks if there was a real stall Paul E. McKenney
2017-01-24 21:51 ` [PATCH v3 tip/core/rcu 05/18] rcu: Remove unneeded rcu_process_callbacks() declarations Paul E. McKenney
2017-01-24 21:51 ` [PATCH v3 tip/core/rcu 06/18] rcu: Remove unused but set variable Paul E. McKenney
2017-01-24 21:51 ` [PATCH v3 tip/core/rcu 07/18] rcu: Add long-term CPU kicking Paul E. McKenney
2017-01-24 21:51 ` [PATCH v3 tip/core/rcu 08/18] rcu: Remove short-term " Paul E. McKenney
2017-01-24 21:51 ` [PATCH v3 tip/core/rcu 09/18] rcu: Once again use NMI-based stack traces in stall warnings Paul E. McKenney
2017-01-24 21:51 ` [PATCH v3 tip/core/rcu 10/18] rcu: Re-enable TASKS_RCU for User Mode Linux Paul E. McKenney
2017-01-24 21:51 ` [PATCH v3 tip/core/rcu 11/18] rcu: Don't wake rcuc/X kthreads on NOCB CPUs Paul E. McKenney
2017-01-24 21:51 ` [PATCH v3 tip/core/rcu 12/18] rcu: Add comment headers to expedited-grace-period counter functions Paul E. McKenney
2017-01-24 21:51 ` [PATCH v3 tip/core/rcu 13/18] rcu: Make rcu_cpu_starting() use its "cpu" argument Paul E. McKenney
2017-01-24 21:51 ` [PATCH v3 tip/core/rcu 14/18] rcu: Enable RCU tracepoints by default to aid in debugging Paul E. McKenney
2017-01-24 21:51 ` [PATCH v3 tip/core/rcu 15/18] rcu: Fix comment in rcu_organize_nocb_kthreads() Paul E. McKenney
2017-01-24 21:51 ` [PATCH v3 tip/core/rcu 16/18] llist: Clarify comments about when locking is needed Paul E. McKenney
2017-01-24 21:51 ` [PATCH v3 tip/core/rcu 17/18] rcu: Eliminate unused expedited_normal counter Paul E. McKenney
2017-01-24 21:51 ` [PATCH v3 tip/core/rcu 18/18] rcu: Add lockdep checks to synchronous expedited primitives Paul E. McKenney
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170123193445.GI28085@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=bobby.prani@gmail.com \
--cc=dhowells@redhat.com \
--cc=dipankar@in.ibm.com \
--cc=dvhart@linux.intel.com \
--cc=edumazet@google.com \
--cc=fweisbec@gmail.com \
--cc=jiangshanlai@gmail.com \
--cc=josh@joshtriplett.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mingo@kernel.org \
--cc=oleg@redhat.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.