]> git.baikalelectronics.ru Git - kernel.git/commit
smp: Process pending softirqs in flush_smp_call_function_from_idle()
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>
Sat, 23 Jan 2021 20:10:25 +0000 (21:10 +0100)
committerIngo Molnar <mingo@kernel.org>
Wed, 17 Feb 2021 13:12:42 +0000 (14:12 +0100)
commitaf0a2201deab7a74ff565d8f88a30fd865724ef4
tree254c468af9872959bd9b327044f14872a7f14ed1
parentad80db8081cb226f1ae8f8ed644404b5f9203739
smp: Process pending softirqs in flush_smp_call_function_from_idle()

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: 0a7d65be084e9 ("smp: Optimize send_call_function_single_ipi()")
Reported-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lkml.kernel.org/r/20210123201027.3262800-2-bigeasy@linutronix.de
kernel/smp.c