Re: sched_ext/lavd hard lockup in old call_rcu_tasks_generic needadjust path
From: Paul E. McKenney
Date: Thu Jun 18 2026 - 12:02:12 EST
On Thu, Jun 18, 2026 at 07:56:05AM +0100, Matt Fleming wrote:
> On Tue, Jun 16, 2026 at 08:24:55PM -0700, Paul E. McKenney wrote:
> > On Tue, Jun 16, 2026 at 11:56:19AM +0100, Matt Fleming wrote:
> > >
> > > What about something like this?
> >
> > Not bad, actually.
> >
> > But we are going to have to similarly bypass call_rcu_tasks_generic()
> > soon enough, though only when interrupts are disabled at the time
> > of the call. One complication is that it would need to interact
> > with rcu_barrier_tasks_generic(), which would need to remove any
> > pending callbacks from bypassed call_rcu_tasks_generic() invocations,
> > as in llist_del_all() and enqueue the callbacks. A well-placed
> > raw_spin_trylock_rcu_node(rtpcp) should suffice for the serialization.
> > The trick is that rcu_barrier_tasks_generic() is not obligated to
> > wait on later calls to call_rcu_tasks_generic().
> >
> > Is this something that you would be interested in digging into?
>
> Sure, I'll take a look.
If you have questions or suggestions for the surrounding code, you know
where to find me! ;-)
Thanx, Paul