Re: [PATCH] rcu: Use IRQ_WORK_INIT_HARD for srcu's irq_work

Sebastian Andrzej Siewior <[email protected]>
Newsgroups org.kernel.vger.rcu,dev.linux.lists.linux-rt-devel
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.