Re: [PATCH v6 04/12] x86/smpboot.c: Don't offline CPU0 if any irqcan not be migrated out of it and remove CPU0 check in smp_callin()

From: H. Peter Anvin
Date: Thu May 17 2012 - 18:53:23 EST


On 05/14/2012 05:17 AM, Ingo Molnar wrote:
>
> * Tony Luck <tony.luck@xxxxxxxxx> wrote:
>
>> Biggest code impact of that is the extra code to bring cpu0
>> back online using NMI instead of INIT. We can't use INIT
>> because if cpu0 gets one, it just resets the whole machine :-(
>> But obviously we'd like to avoid special cases where there is
>> a sane way to do so.
>
> Could we just standardize on NMI bringup during regular bootup?
>

The first instance has to be SIPI because you can't give the CPU an NMI
without the IDT being setup. We *could* assume that the processor is
parked in real mode with the valid real-mode IDT set up (in which case
the vector at physical address 8 applies) but that seems to assume a lot
from the BIOS for little gain. In particular I suspect that UEFI-based
BIOSes may very well park the CPU in protected or long mode.

-hpa


--
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel. I don't speak on their behalf.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/