Re: [PATCH 1/3] smp: Process pending softirqs in flush_smp_call_function_from_idle()

From: Peter Zijlstra
Date: Tue Feb 09 2021 - 05:18:31 EST


On Sat, Jan 23, 2021 at 09:10:25PM +0100, Sebastian Andrzej Siewior wrote:
> send_call_function_single_ipi() may wake an idle CPU without sending an
> IPI. The woken up CPU will process the SMP-functions in
> flush_smp_call_function_from_idle(). Any raised softirq from within the
> SMP-function call will not be processed.
> Should the CPU have no tasks assigned, then it will go back to idle with
> pending softirqs and the NOHZ will rightfully complain.
>
> Process pending softirqs on return from flush_smp_call_function_queue().
>
> Fixes: b2a02fc43a1f4 ("smp: Optimize send_call_function_single_ipi()")
> Reported-by: Jens Axboe <axboe@xxxxxxxxx>
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>

Fair enough. I'll stick this in tip/sched/smp for Jens and merge that
into tip/sched/core.

Thanks!