Re: [PATCH] rcu: Make rcu_normal_after_boot writable on RT

From: Paul E. McKenney
Date: Fri Aug 06 2021 - 13:44:16 EST


On Fri, Aug 06, 2021 at 10:04:55AM +0200, Sebastian Andrzej Siewior wrote:
> On 2021-08-05 09:03:37 [-0700], Paul E. McKenney wrote:
> > Makes sense to me!
> >
> > But would another of the -rt people be willing to give an Acked-by?
> > For example, maybe they would prefer this kernel boot parameter to be
> > exposed only if (!PREEMPT_RT || NO_HZ_FULL). Or are there !NO_HZ_FULL
> > situations where rcu_normal_after_boot makes sense?
>
> Julia crafted that "rcu_normal_after_boot = 1" for RT after we had more
> and more synchronize_rcu_expedited() users popping up. I would like to
> keep that part (default value) since it good to have for most users.
>
> I don't mind removing CONFIG_PREEMPT_RT part here if there are legitimate
> use cases for using "rcu_normal_after_boot = 0".
> Paul suggested initially to restrict that option for PREEMPT_RT and I
> would follow here Paul's guidance to either remove it or restrict it to
> NO_HZ_FULL in RT's case (as suggested).

Given what I know now, I suggest the following:

o Restrict the option to !PREEMPT_RT unless NO_HZ_FULL.
Maybe "!defined(CONFIG_PREEMPT_RT) || defined(CONFIG_NO_HZ_FULL)".

If there is some non-NO_HZ_FULL PREEMPT_RT configuration that
tolerates expedited grace periods, this would need to change.

o Change the permissions from "0" to "0444", if desired. If you
would rather not, I can do this in a follow-up patch. (No idea
why I let such an ugly serviceability issue through, but the
previous pair of module_param() instances have the same problem.)

Anything I am missing?

Thanx, Paul