LWN.net Logo

x86: BSP or CPU0 online/offline

From:  "Fenghua Yu" <fenghua.yu@intel.com>
To:  "Thomas Gleixner" <tglx@linutronix.de>, "H Peter Anvin" <hpa@zytor.com>, "Ingo Molnar" <mingo@elte.hu>, "Linus Torvalds" <torvalds@linux-foundation.org>, "Andrew Morton" <akpm@linux-foundation.org>, "Tony Luck" <tony.luck@intel.com>, "Arjan van de Ven" <arjan.van.de.ven@intel.com>, "Suresh B Siddha" <suresh.b.siddha@intel.com>, "Len Brown" <len.brown@intel.com>, "Randy Dunlap" <rdunlap@xenotime.net>, "Srivatsa S. Bhat" <srivatsa.bhat@linux.vnet.ibm.com>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, Peter Zijlstra <peterz@infradead.org>
Subject:  [PATCH v4 0/7] x86: BSP or CPU0 online/offline
Date:  Fri, 11 Nov 2011 21:26:25 -0800
Message-ID:  <1321075592-31600-1-git-send-email-fenghua.yu@intel.com>
Cc:  "linux-kernel" <linux-kernel@vger.kernel.org>, "linux-pm" <linux-pm@vger.kernel.org>, "x86" <x86@kernel.org>, "Fenghua Yu" <fenghua.yu@intel.com>
Archive-link:  Article, Thread

From: Fenghua Yu <fenghua.yu@intel.com>

BSP or CPU0 has been the last obstacle to CPU hotplug on x86. This patch set
implements BSP online and offline and removes this obstacle to CPU hotplug.

RAS needs the feature. If socket0 needs to be hotplugged for any reason (any
thread on socket0 is bad, shared cache issue, uncore issue, etc), CPU0 is
required to be offline or hot replaced to keep the system run.

v4: Add __read_mostly for bsp_hotpluggable variable. Add my email address in
cpu-hotplug.txt document. A wording change in comment.

v3: Register a pm notifier to check if CPU0 is online before hibernate/suspend.
Small wording changes in document and print info.

v2: Add locking changes between cpu hotplug and hibernate/suspend. Change PIC
irq bound to CPU0 detection.

Fenghua Yu (7):
  x86/topology.c: Support functions for BSP online/offline
  x86/common.c: Init BSP data during BSP online
  x86/mtrr/main.c: Ask the first online CPU to save mtrr
  x86/smpboot.c: Don't offline BSP if any irq can not be migrated out
    of it
  Documentations/cpu-hotplug.tx, kernel-parameters.txt: Add x86 CPU0
    online/offline feature
  x86/i387.c: Thread xstate is initialized only on BSP once
  x86/power/cpu.c: Don't hibernate/suspend if CPU0 is offline

 Documentation/cpu-hotplug.txt       |   19 +++++++++++++++
 Documentation/kernel-parameters.txt |   13 ++++++++++
 arch/x86/include/asm/processor.h    |    1 +
 arch/x86/kernel/cpu/common.c        |   13 ++++++++--
 arch/x86/kernel/cpu/mtrr/main.c     |    9 +++++-
 arch/x86/kernel/i387.c              |    9 ++++++-
 arch/x86/kernel/smpboot.c           |   43 ++++++++++++++++++++++++++++-----
 arch/x86/kernel/topology.c          |   24 +++++++++++++-----
 arch/x86/power/cpu.c                |   44 +++++++++++++++++++++++++++++++++++
 9 files changed, 155 insertions(+), 20 deletions(-)

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

Copyright © 2011, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds