• Linus Torvalds's avatar
    Merge branch 'x86-bsp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 74b84233
    Linus Torvalds authored
    Pull x86 BSP hotplug changes from Ingo Molnar:
     "This tree enables CPU#0 (the boot processor) to be onlined/offlined on
      x86, just like any other CPU.  Enabled on Intel CPUs for now.
    
      Allowing this required the identification and fixing of latent CPU#0
      assumptions (such as CPU#0 initializations, etc.) in the x86
      architecture code, plus the identification of barriers to
      BSP-offlining, such as active PIC interrupts which can only be
      serviced on the BSP.
    
      It's behind a default-off option, and there's a debug option that
      allows the automatic testing of this feature.
    
      The motivation of this feature is to allow and prepare for true
      CPU-hotplug hardware support: recent changes to MCE support enable us
      to detect a deteriorating but not yet hard-failing L1/L2 cache on a
      CPU that could be soft-unplugged - or a failing L3 cache on a
      multi-socket system.
    
      Note that true hardware hot-plug is not yet fully enabled by this,
      because that requires a special platform wakeup sequence to be sent to
      the freshly powered up CPU#0.  Future patches for this are planned,
      once such a platform exists.  Chicken and egg"
    
    * 'x86-bsp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      x86, topology: Debug CPU0 hotplug
      x86/i387.c: Initialize thread xstate only on CPU0 only once
      x86, hotplug: Handle retrigger irq by the first available CPU
      x86, hotplug: The first online processor saves the MTRR state
      x86, hotplug: During CPU0 online, enable x2apic, set_numa_node.
      x86, hotplug: Wake up CPU0 via NMI instead of INIT, SIPI, SIPI
      x86-32, hotplug: Add start_cpu0() entry point to head_32.S
      x86-64, hotplug: Add start_cpu0() entry point to head_64.S
      kernel/cpu.c: Add comment for priority in cpu_hotplug_pm_callback
      x86, hotplug, suspend: Online CPU0 for suspend or hibernate
      x86, hotplug: Support functions for CPU0 online/offline
      x86, topology: Don't offline CPU0 if any PIC irq can not be migrated out of it
      x86, Kconfig: Add config switch for CPU0 hotplug
      doc: Add x86 CPU0 online/offline feature
    74b84233
smpboot.c 35.3 KB