Re: [PATCH 2/7] rcu: limit PREEMPT_RCU configurations

From: Paul E. McKenney
Date: Sat Oct 19 2024 - 00:30:54 EST


On Fri, Oct 18, 2024 at 06:07:52PM -0700, Ankur Arora wrote:
>
> Paul E. McKenney <paulmck@xxxxxxxxxx> writes:
>
> > On Fri, Oct 18, 2024 at 12:18:04PM -0700, Ankur Arora wrote:
> >>
> >> Paul E. McKenney <paulmck@xxxxxxxxxx> writes:
> >>
> >> > On Thu, Oct 17, 2024 at 03:50:46PM -0700, Ankur Arora wrote:
> >> >> Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> writes:
> >> >> > On 2024-10-15 15:13:46 [-0700], Ankur Arora wrote:
> >> >> >> Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> writes:
> >> >> >>
> >> [ ... ]
> >> >> Sure. But, that's just begging the question.
> >> >>
> >> >> We want _NONE and _VOLUNTARY to go away because keeping cond_resched()
> >> >> around incurs a cost.
> >> >
> >> > When you say "go away", do you mean for your use cases? Or globally?
> >>
> >> When I say "want _ to go away" I mean: cond_resched() is deleterious
> >> to performance since you are forced to have code which can do the
> >> rescheduling check synchronously -- when this could easily be done
> >> asynchronously (as the non voluntary models do).
> >>
> >> And this either means poor performance (ex. in the page zeroing code
> >> where it would be more optimal to work on continguous ranges) or
> >> gyrations like the ones that xen_pv_evtchn_do_upcall() and the
> >> Xen hypervisor have to go through.
> >>
> >> And, as we've discussed before, the cond_resched() interface, while it
> >> works, is not ideal.
> >
> > I would expect that many instances of cond_resched() could go away given
> > lazy preemption, but I would not be surprised if there were some that
> > needed to stay around.
> >
> > Your thought being that if *all* instance of cond_resched() go away,
> > then PREEMPT_NONE also goes away?
>
> If *all* instances of cond_resched() go away, is there anything left of
> PREEMPT_NONE?

Yes, namely its relationship to PREEMPT_RCU. Which, yes, can be adjusted,
perhaps even as Sebastian suggested. But such an adjustment cannot be
applied suddenly without warning.

> > Given how long PREEMPT_NONE has been
> > around, this would need to be done (and communicated) quite carefully.
>
> I don't think there's any question about that.

Whew!!!

> >> Also, a man can dream!
> >
> > Fair enough, just be very careful to distinguish dreams from reality. ;-)
>
> I've generally not found that to be a problem, but thanks for the warning.

"It is a service that I provide." ;-)

Thanx, Paul