rcu.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@kernel.org>
To: Joel Fernandes <joel@joelfernandes.org>
Cc: rcu@vger.kernel.org, rostedt@goodmis.org, bristot@redhat.com
Subject: Re: RCU_BOOST not working for me
Date: Fri, 17 Jan 2020 20:54:36 -0800	[thread overview]
Message-ID: <20200118045436.GU2935@paulmck-ThinkPad-P72> (raw)
In-Reply-To: <20200118043458.GT2935@paulmck-ThinkPad-P72>

On Fri, Jan 17, 2020 at 08:34:58PM -0800, Paul E. McKenney wrote:
> On Fri, Jan 17, 2020 at 09:34:34PM -0500, Joel Fernandes wrote:
> > On Fri, Jan 17, 2020 at 03:17:56PM -0800, Paul E. McKenney wrote:
> > [...] 
> > > But rcutorture already has tests for RCU priority boosting.  Or are those
> > > failing in some way?
> > 
> > Yes there are tests, but I thought of just a simple experiment to study this.
> > Purely since it is existing RCU kernel code that I'd like to understand. And
> > me/Daniel are also looking into possibly using run-time / trace-based
> > verification some of these behaviors.
> 
> The functionality of rcu_state.cbovld should make that more entertaining.
> 
> But I would guess that the initial model would ignore memory footprint
> and just model RCU priority boosting as kicking in a fixed time after
> the beginning of the grace period.
> 
> Or do you guys have something else in mind?
> 
> 							Thanx, Paul
> 
> PS.  Steve, yes, I do well remember our earlier discussions about readers
>      inheriting priority from the highest-priority synchronize_rcu().  ;-)

To see the reason why RCU priority boosting does not work like that,
consider a (stupid but legal) situation with way more tasks like this
than the system can handle:

	for (;;) {
		cond_resched();
		p = kmalloc(sizeof(*p), GFP_ATOMIC);
		if (!p)
			continue;
		rcu_read_lock();
		kfree(&p->rh, my_func);
		rcu_read_unlock(;
	}

Nothing is ever waiting on the RCU grace period, so there is no natural
place for priority to be inherited from.

But the current RCU priority boosting works just fine in this situation,
at least assuming rcutree.kthread_prio is set suitably.  And if it is
not working fine in some other situation, it would be good for someone
to let me in on the secret.  ;-)

							Thanx, Paul

  reply	other threads:[~2020-01-18  4:54 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-17 21:58 RCU_BOOST not working for me Joel Fernandes
2020-01-17 22:18 ` Joel Fernandes
2020-01-17 23:17   ` Paul E. McKenney
2020-01-18  2:10     ` Joel Fernandes
2020-01-18  2:32       ` Joel Fernandes
2020-01-18  4:31         ` Paul E. McKenney
2020-01-18  4:28       ` Paul E. McKenney
2020-01-18 20:12         ` Joel Fernandes
2020-01-18 22:37           ` Paul E. McKenney
2020-01-18  2:34     ` Joel Fernandes
2020-01-18  4:34       ` Paul E. McKenney
2020-01-18  4:54         ` Paul E. McKenney [this message]
2020-01-18 20:21           ` Joel Fernandes
2020-01-18 22:29             ` Paul E. McKenney
2020-01-18 20:19         ` Joel Fernandes
2020-01-18 22:47           ` Paul E. McKenney
2020-01-19  1:58             ` Joel Fernandes
2020-01-19  5:49               ` 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=20200118045436.GU2935@paulmck-ThinkPad-P72 \
    --to=paulmck@kernel.org \
    --cc=bristot@redhat.com \
    --cc=joel@joelfernandes.org \
    --cc=rcu@vger.kernel.org \
    --cc=rostedt@goodmis.org \
    /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;
as well as URLs for NNTP newsgroup(s).