[PATCH 6.6 0/2] fix do_softirq_post_smp_call_flush warnings caused by NET_RX_SOFTIRQ

From: wen . yang
Date: Mon Dec 29 2025 - 02:57:28 EST


From: Wen Yang <wen.yang@xxxxxxxxx>

do_softirq_post_smp_call_flush() on PREEMPT_RT kernels carries a
WARN_ON_ONCE() for any SOFTIRQ being raised from an SMP-call-function.
Since do_softirq_post_smp_call_flush() is called with preempt disabled,
raising a SOFTIRQ during flush_smp_call_function_queue() can lead to
longer preempt disabled sections.

RPS distributes network processing load across CPUs by enqueuing
packets on a remote CPU's backlog and raising NET_RX_SOFTIRQ to
process them.

The following patches fixes this issue.

Sebastian Andrzej Siewior (2):
net: Remove conditional threaded-NAPI wakeup based on task state.
net: Allow to use SMP threads for backlog NAPI.

net/core/dev.c | 162 +++++++++++++++++++++++++++++++++++--------------
1 file changed, 115 insertions(+), 47 deletions(-)

--
2.25.1