Re: [PATCH RFC] x86/smpboot: Unbreak CPU0 hotplug

From: Vitaly Kuznetsov
Date: Fri Jun 30 2017 - 04:27:20 EST


Vitaly Kuznetsov <vkuznets@xxxxxxxxxx> writes:

> A hang on CPU0 onlining after a preceding offlining is observed. Trace
> shows that CPU0 is stuck in check_tsc_sync_target() waiting for source
> CPU to run check_tsc_sync_source() but this never happens. Source CPU,
> in its turn, is stuck on synchronize_sched() which is called from
> native_cpu_up() -> do_boot_cpu() -> unregister_nmi_handler().
>
> Fix the issue by moving unregister_nmi_handler() from do_boot_cpu() to
> native_cpu_up() after cpu onlining is done.
>
> Signed-off-by: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>
> ---
> RFC part: I tested the fix on KVM and Xen guests and it works just fine
> but CPU0 hotplug is not something I'm really familiar with, I may be
> missing some important details. I also skipped code archeology to figure
> out when things got broken.

Any comments? This can be considered as non-RFC if not :-)

--
Vitaly