On 6/15/26 13:05, Harry Yoo (Oracle) wrote: > __kfree_rcu_sheaf() cannot invoke call_rcu() when spinning is not > allowed and IRQs are disabled. To relax the limitation, extend the > deferred free fallback so that a full rcu sheaf can be submitted to > call_rcu() via the existing IRQ work. > > Since the deferred mechanism does more than deferred free of objects, > rename the struct to deferred_percpu_work and adjust names accordingly. > > When a sheaf is queued on an IRQ work, it is detached from > pcs->rcu_free but call_rcu() is not invoked until the irq_work runs. > To keep the kvfree_rcu barrier's promise, call irq_work_sync() on each > CPU before calling rcu_barrier(). > > In the meantime, remove the TODO item as apparently there is no simple > and effective way to achieve that. > > Suggested-by: Alexei Starovoitov <[email protected]> > Signed-off-by: Harry Yoo (Oracle) <[email protected]>
LGTM. Reviewed-by: Vlastimil Babka (SUSE) <[email protected]>

