On Thu, Feb 12, 2026 at 11:15:52AM -0800, Alexei Starovoitov wrote: > On Fri, Feb 6, 2026 at 1:35 AM Harry Yoo <[email protected]> wrote: > > > > } else { > > + if (unlikely(!allow_spin)) { > > + /* call_rcu() does not support NMI context */ > > + rcu_sheaf->size--; > > + local_unlock(&s->cpu_sheaves->lock); > > + goto fail; > > As a first step it's ok, but we need to make call_rcu() work too.
Yeah I was thinking it would be nice to have call_rcu_nolock()... > Shouldn't be too hard. It protects itself with local_irq_save, > so if (irqs_disabled()) defer to irq_work and call_rcu there > or guard reentrance into __call_rcu_common() with per-cpu busy counter. > rcu_head can be reused to form list of objects to be processed in irq work. I'll take a look at that, thanks! -- Cheers, Harry / Hyeonggon
