From: "Paul E. McKenney" <paulmck@kernel.org>
To: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: linux-kernel@vger.kernel.org, rcu@vger.kernel.org, tglx@linutronix.de
Subject: Re: Should RCU_BOOST kernels use hrtimers in GP kthread?
Date: Wed, 17 Feb 2021 07:54:47 -0800 [thread overview]
Message-ID: <20210217155447.GC2743@paulmck-ThinkPad-P72> (raw)
In-Reply-To: <20210217153253.fy2mhxo3o3ehsuix@linutronix.de>
On Wed, Feb 17, 2021 at 04:32:53PM +0100, Sebastian Andrzej Siewior wrote:
> On 2021-02-16 10:36:09 [-0800], Paul E. McKenney wrote:
> > Hello, Sebastian,
>
> Hi Paul,
>
> > I punted on this for the moment by making RCU priority boosting testing
> > depend on CONFIG_PREEMPT_RT, but longer term I am wondering if RCU's
> > various timed delays and timeouts should use hrtimers rather than normal
> > timers in kernels built with CONFIG_RCU_BOOST. As it is, RCU priority
> > boosting can be defeated if any of the RCU grace-period kthread's timeouts
> > are serviced by the non-realtime ksoftirqd.
>
> I though boosting is accomplished by acquiring a rt_mutex in a
> rcu_read() section. Do you have some code to point me to, to see how a
> timer is involved here? Or is it the timer saying that *now* boosting is
> needed.
Yes, this last, which is in the grace-period kthread code, for example,
in rcu_gp_fqs_loop().
> If your hrtimer is a "normal" hrtimer then it will be served by
> ksoftirqd, too. You would additionally need one of the
> HRTIMER_MODE_*_HARD to make it work.
Good to know. Anything I should worry about for this mode?
Also, the current test expects callbacks to be invoked, which involves a
number of additional kthreads and timers, for example, in nocb_gp_wait().
I suppose I could instead look at grace-period sequence numbers, but I
believe that real-life use cases needing RCU priority boosting also need
the callbacks to be invoked reasonably quickly (as in within hundreds
of milliseconds up through very small numbers of seconds).
Thoughts?
Thanx, Paul
> > This might require things like swait_event_idle_hrtimeout_exclusive(),
> > either as primitives or just open coded.
> >
> > Thoughts?
> >
> > Thanx, Paul
>
> Sebastian
next prev parent reply other threads:[~2021-02-17 15:55 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-16 18:36 Paul E. McKenney
2021-02-17 15:32 ` Sebastian Andrzej Siewior
2021-02-17 15:54 ` Paul E. McKenney [this message]
2021-02-17 17:01 ` Paul E. McKenney
2021-02-17 18:01 ` Sebastian Andrzej Siewior
2021-02-17 19:19 ` Paul E. McKenney
2021-02-17 19:43 ` Sebastian Andrzej Siewior
2021-04-14 23:48 ` 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=20210217155447.GC2743@paulmck-ThinkPad-P72 \
--to=paulmck@kernel.org \
--cc=bigeasy@linutronix.de \
--cc=linux-kernel@vger.kernel.org \
--cc=rcu@vger.kernel.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
all inboxes | Powered by JetHome®