From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
To: Joel Fernandes <joelagnelf@nvidia.com>
Cc: paulmck@kernel.org, rcu@vger.kernel.org,
linux-kernel@vger.kernel.org,
Frederic Weisbecker <frederic@kernel.org>,
Neeraj Upadhyay <neeraj.upadhyay@kernel.org>,
Boqun Feng <boqun@kernel.org>,
Josh Triplett <josh@joshtriplett.org>,
Uladzislau Rezki <urezki@gmail.com>,
Steven Rostedt <rostedt@goodmis.org>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Lai Jiangshan <jiangshanlai@gmail.com>,
Zqiang <qiang.zhang@linux.dev>,
Davidlohr Bueso <dave@stgolabs.net>,
Jonathan Corbet <corbet@lwn.net>,
Shuah Khan <skhan@linuxfoundation.org>,
linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org
Subject: Re: [PATCH RFC 5/7] rcu: Add rcutree.boost_disable to disable priority boosting at runtime
Date: Fri, 13 Nov 2026 17:36:47 +0100 [thread overview]
Message-ID: <20261113163647.OrW62pCV@linutronix.de> (raw)
In-Reply-To: <20261111213826.2035045-6-joelagnelf@nvidia.com>
On 2026-11-11 16:38:23 [-0500], Joel Fernandes wrote:
> CONFIG_RCU_BOOST is now enabled automatically for preemptible RCU and
> cannot be turned off, so rcutorture's BUSTED-BOOST scenario, which is
> meant to show that rcutorture detects broken priority boosting, can no
> longer break it. Add a boot parameter that makes rcu_initiate_boost()
> do nothing, giving that scenario a way to break boosting.
It has:
| depends on (RT_MUTEXES && PREEMPT_RCU && RCU_EXPERT) || PREEMPT_RT
| default y if PREEMPT_RT
which I read as always enable on PREEMPT_RT and on PREEMPT_RCU only with
RCU_EXPERT enabled which off by default.
But BUSTED-BOOST always enabled RCU_EXPERT which means it is always
enabled. Hmm.
> --- a/kernel/rcu/tree_plugin.h
> +++ b/kernel/rcu/tree_plugin.h
> @@ -1270,6 +1270,9 @@ static int rcu_boost_kthread(void *arg)
> return 0;
> }
>
> +static bool boost_disable;
> +module_param(boost_disable, bool, 0444);
> +
> /*
> * Check to see if it is time to start boosting RCU readers that are
> * blocking the current grace period, and, if so, tell the per-rcu_node
> @@ -1284,7 +1287,7 @@ static void rcu_initiate_boost(struct rcu_node *rnp, unsigned long flags)
> __releases(rnp->lock)
> {
> raw_lockdep_assert_held_rcu_node(rnp);
> - if (!rnp->boost_kthread_task ||
> + if (boost_disable || !rnp->boost_kthread_task ||
Could you instead make this a parameter of rcutorture (and not rcu's)
and then check it behind IS_ENABLED(CONFIG_RCU_TORTURE_TEST)?
That way non-testing code does not have this additional read and the
variable parameter and so on.
Maybe tell rcu_spawn_one_boost_kthread() not to populate the tread this
thread in case.
> (!rcu_preempt_blocked_readers_cgp(rnp) && !rnp->exp_tasks)) {
> raw_spin_unlock_irqrestore_rcu_node(rnp, flags);
> return;
Sebastian
next prev parent reply other threads:[~2026-11-13 16:36 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-11 21:38 [PATCH RFC 0/7] rcutorture: Rewrite RCU priority-boost test around a CPU-hungry reader Joel Fernandes
2026-11-11 21:38 ` [PATCH RFC 1/7] " Joel Fernandes
2026-11-13 12:01 ` Sebastian Andrzej Siewior
2026-11-13 15:53 ` Sebastian Andrzej Siewior
2026-11-13 16:19 ` Sebastian Andrzej Siewior
2026-11-11 21:38 ` [PATCH RFC 2/7] rcutorture: Stop disabling RT throttling for boost testing Joel Fernandes
2026-11-13 15:56 ` Sebastian Andrzej Siewior
2026-11-11 21:38 ` [PATCH RFC 3/7] rcutorture: Remove unused check_boost_failed hook Joel Fernandes
2026-11-13 16:00 ` Sebastian Andrzej Siewior
2026-11-11 21:38 ` [PATCH RFC 4/7] doc: Document rcutorture.test_boost_reader_ms Joel Fernandes
2026-11-11 21:38 ` [PATCH RFC 5/7] rcu: Add rcutree.boost_disable to disable priority boosting at runtime Joel Fernandes
2026-11-13 16:36 ` Sebastian Andrzej Siewior [this message]
2026-11-11 21:38 ` [PATCH RFC 6/7] doc: Document rcutree.boost_disable Joel Fernandes
2026-11-11 21:38 ` [PATCH RFC 7/7] rcutorture: Make BUSTED-BOOST disable RCU priority boosting Joel Fernandes
2026-11-13 10:55 ` [PATCH RFC 0/7] rcutorture: Rewrite RCU priority-boost test around a CPU-hungry reader Sebastian Andrzej Siewior
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=20261113163647.OrW62pCV@linutronix.de \
--to=bigeasy@linutronix.de \
--cc=boqun@kernel.org \
--cc=corbet@lwn.net \
--cc=dave@stgolabs.net \
--cc=frederic@kernel.org \
--cc=jiangshanlai@gmail.com \
--cc=joelagnelf@nvidia.com \
--cc=josh@joshtriplett.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=neeraj.upadhyay@kernel.org \
--cc=paulmck@kernel.org \
--cc=qiang.zhang@linux.dev \
--cc=rcu@vger.kernel.org \
--cc=rostedt@goodmis.org \
--cc=skhan@linuxfoundation.org \
--cc=urezki@gmail.com \
/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.