Re: [PATCH] smp: Do not warn if smp_call_function_single() is doing a self call.

From: Peter Zijlstra
Date: Mon Apr 15 2019 - 08:21:54 EST


On Fri, Apr 12, 2019 at 11:53:57PM +0000, Dexuan Cui wrote:
> If smp_call_function_single() is calling the function for itself, it's safe
> to run with irqs_disabled() == true.
>
> I hit the warning because I'm in the below path in the .suspend callback of
> a "syscore_ops" to support hibernation for a VM running on Hyper-V:
>
> hv_synic_cleanup() ->
> clockevents_unbind_device() ->
> clockevents_unbind() ->
> smp_call_function_single().
>
> When the .suspend callback runs, only CPU0 is online and irqs_disabled() is
> true.

Pray tell, how well do you think mutex_lock() works with interrupts
disabled?