Re: [PATCH] rcu: Use IRQ_WORK_INIT_HARD for srcu's irq_work
Sebastian Andrzej Siewior <[email protected]>
| Newsgroups | dev.linux.lists.linux-rt-devel,org.kernel.vger.rcu |
|---|---|
| Message-ID | <[email protected]> |
On 2026-08-20 13:00:28 [-0400], Steven Rostedt wrote: > On Thu, 20 Aug 2026 15:55:00 +0200 > Sebastian Andrzej Siewior <[email protected]> wrote: > > > > > diff --git a/kernel/rcu/srcutree.c b/kernel/rcu/srcutree.c > > > > index 7c2f7cc131f7a..b703233d4a63f 100644 > > > > --- a/kernel/rcu/srcutree.c > > > > +++ b/kernel/rcu/srcutree.c > > > > @@ -218,7 +218,7 @@ static int init_srcu_struct_fields(struct srcu_struct *ssp, bool is_static) > > > > mutex_init(&ssp->srcu_sup->srcu_barrier_mutex); > > > > atomic_set(&ssp->srcu_sup->srcu_barrier_cpu_cnt, 0); > > > > INIT_DELAYED_WORK(&ssp->srcu_sup->work, process_srcu); > > > > - init_irq_work(&ssp->srcu_sup->irq_work, srcu_irq_work); > > > > + ssp->srcu_sup->irq_work = IRQ_WORK_INIT_HARD(srcu_irq_work); > > > > > > It may need a comment to not lose that. > > I agree a comment would be useful here. Urgh. > > We could also make irq_work.o earlier in the Makefile, right at the top > > so it comes before tracing. This was one of the first ideas and makes > > the issue also go away. But given that it is just a wake we avoid waking > > the irq_work/ thread just to schedule a timer/ wake workqueue. > > That doesn't sound as robust as this solution. Updating Makefile order > is a fragile solution. This is the way how ordering in initcall works. Both are early_initcall so if you don't tweak the makefile for ordering you would have to introduce a level before early. > Anyway for this patch, > > Reviewed-by: Steven Rostedt <[email protected]. > > -- Steve Sebastian