Re: [PATCH] net: raise RCU qs after each threaded NAPI poll

From: Steven Rostedt
Date: Wed Feb 28 2024 - 17:31:19 EST


On Wed, 28 Feb 2024 14:19:11 -0800
"Paul E. McKenney" <paulmck@xxxxxxxxxx> wrote:

> > >
> > > Well, to your initial point, cond_resched() does eventually invoke
> > > preempt_schedule_common(), so you are quite correct that as far as
> > > Tasks RCU is concerned, cond_resched() is not a quiescent state.
> >
> > Thanks for confirming. :-)
>
> However, given that the current Tasks RCU use cases wait for trampolines
> to be evacuated, Tasks RCU could make the choice that cond_resched()
> be a quiescent state, for example, by adjusting rcu_all_qs() and
> .rcu_urgent_qs accordingly.
>
> But this seems less pressing given the chance that cond_resched() might
> go away in favor of lazy preemption.

Although cond_resched() is technically a "preemption point" and not truly a
voluntary schedule, I would be happy to state that it's not allowed to be
called from trampolines, or their callbacks. Now the question is, does BPF
programs ever call cond_resched()? I don't think they do.

[ Added Alexei ]

-- Steve