public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Peter Zijlstra <peterz@infradead.org>
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,
	Clark Williams <clark.williams@gmail.com>
Subject: Re: [PATCH tip/core/rcu 4/7] rcu: Unify boost and kthread priorities
Date: Wed, 29 Oct 2014 09:16:02 -0700	[thread overview]
Message-ID: <20141029161602.GT5718@linux.vnet.ibm.com> (raw)
In-Reply-To: <20141029110146.GA3337@twins.programming.kicks-ass.net>

On Wed, Oct 29, 2014 at 12:01:46PM +0100, Peter Zijlstra wrote:
> On Tue, Oct 28, 2014 at 03:22:59PM -0700, Paul E. McKenney wrote:
> > From: Clark Williams <clark.williams@gmail.com>
> > 
> > Rename CONFIG_RCU_BOOST_PRIO to CONFIG_RCU_KTHREAD_PRIO and use this
> > value for both the per-CPU kthreads (rcuc/N) and the rcu boosting
> > threads (rcub/n).
> > 
> > Also, create the module_parameter rcutree.kthread_prio to be used on
> > the kernel command line at boot to set a new value (rcutree.kthread_prio=N).
> > 
> > Signed-off-by: Clark Williams <clark.williams@gmail.com>
> > [ paulmck: Ported to rcu/dev, applied Paul Bolle feedback. ]
> > Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
> > ---
> >  Documentation/kernel-parameters.txt                |  6 ++++++
> >  init/Kconfig                                       | 23 +++++++++++-----------
> >  kernel/rcu/tree_plugin.h                           | 20 +++++++++----------
> >  .../selftests/rcutorture/configs/rcu/TREE03        |  2 +-
> >  .../selftests/rcutorture/doc/TREE_RCU-kconfig.txt  |  4 ++--
> >  5 files changed, 31 insertions(+), 24 deletions(-)
> > 
> > diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
> > index 7dbe5ec9d9cd..7d3b3328bf5c 100644
> > --- a/Documentation/kernel-parameters.txt
> > +++ b/Documentation/kernel-parameters.txt
> > @@ -2922,6 +2922,12 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
> >  			quiescent states.  Units are jiffies, minimum
> >  			value is one, and maximum value is HZ.
> >  
> > +	rcutree.kthread_prio= 	 [KNL,BOOT]
> > +			Set the SCHED_FIFO priority of the RCU
> > +			per-CPU kthreads (rcuc/N). This value is also
> > +			used for the priority of the RCU boost threads
> > +			(rcub/N). Valid values are 1-99.
> > +
> 
> It would maybe be useful to mention the default?

Good point, fixed.  It now reads as follows:

	rcutree.kthread_prio= 	 [KNL,BOOT]
			Set the SCHED_FIFO priority of the RCU
			per-CPU kthreads (rcuc/N). This value is also
			used for the priority of the RCU boost threads
			(rcub/N). Valid values are 1-99 and the default
			is 1 (the least-favored priority).

> Also, should we look at running this stuff as deadline in order to
> provide interference guarantees etc.. ?

Excellent question!  I have absolutely no idea what the answer might be.

Taking the two sets of kthreads separately...

rcub/N:	This is for RCU priority boosting.  In the preferred common case,
	these never wake up ever.  When they do wake up, all they do is
	cause blocked RCU readers to get priority boosted.   I vaguely
	recall something about inheritance of deadlines, which might
	work here.  One concern is what happens if the deadline is
	violated, as this isn't really necessarily an error condition
	in this case -- we don't know how long the RCU read-side critical
	section will run once awakened.

rcuc/N: This is the softirq replacement in -rt, but in mainline all it
	does is invoke RCU callbacks.	It might make sense to give it a
	deadline of something like a few milliseconds, but we would need
	to temper that if there were huge numbers of callbacks pending.
	Or perhaps have it claim that its "unit of work" was some fixed
	number of callbacks or emptying the list, whichever came first.
	Or maybe have its "unit of work" also depend on the number of
	callbacks pending.

Thoughts?

							Thanx, Paul


  reply	other threads:[~2014-10-29 16:16 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-28 22:22 [PATCH tip/core/rcu 0/7] Real-time updates for 3.19 Paul E. McKenney
2014-10-28 22:22 ` [PATCH tip/core/rcu 1/7] init/Kconfig: move RCU_NOCB_CPU dependencies to choice Paul E. McKenney
2014-10-28 22:22   ` [PATCH tip/core/rcu 2/7] rcu: Move RCU_BOOST variable declarations, eliminating #ifdef Paul E. McKenney
2014-10-28 22:22   ` [PATCH tip/core/rcu 3/7] rcu: Avoid IPIing idle CPUs from synchronize_sched_expedited() Paul E. McKenney
2014-10-29 10:59     ` Peter Zijlstra
2014-10-29 15:56       ` Paul E. McKenney
2014-10-28 22:22   ` [PATCH tip/core/rcu 4/7] rcu: Unify boost and kthread priorities Paul E. McKenney
2014-10-29 11:01     ` Peter Zijlstra
2014-10-29 16:16       ` Paul E. McKenney [this message]
2014-10-31 16:22         ` Peter Zijlstra
2014-10-31 16:42           ` Paul E. McKenney
2014-10-31 16:51             ` Peter Zijlstra
2014-10-31 16:57               ` Paul E. McKenney
2014-10-28 22:23   ` [PATCH tip/core/rcu 5/7] rcu: Remove redundant TREE_PREEMPT_RCU config option Paul E. McKenney
2014-10-28 22:23   ` [PATCH tip/core/rcu 6/7] rcu: Kick rcuo kthreads after their CPU goes offline Paul E. McKenney
2014-10-28 22:23   ` [PATCH tip/core/rcu 7/7] rcu: Fix for rcuo online-time-creation reorganization bug 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=20141029161602.GT5718@linux.vnet.ibm.com \
    --to=paulmck@linux.vnet.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=bobby.prani@gmail.com \
    --cc=clark.williams@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=josh@joshtriplett.org \
    --cc=laijs@cn.fujitsu.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox