From: "Fenghua Yu" <fenghua.yu@intel.com>
To: Ingo Molnar <mingo@elte.hu>, Thomas Gleixner <tglx@linutronix.de>,
H Peter Anvin <hpa@zytor.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
Andrew Morton <akpm@linux-foundation.org>,
Asit K Mallick <asit.k.mallick@intel.com>,
Tony Luck <tony.luck@intel.com>,
Arjan Dan De Ven <arjan@linux.intel.com>,
Suresh B Siddha <suresh.b.siddha@intel.com>,
Len Brown <len.brown@intel.com>,
"Srivatssa S. Bhat" <srivatsa.bhat@linux.vnet.ibm.com>,
Randy Dunlap <rdunlap@xenotime.net>,
"Rafael J. Wysocki" <rjw@sisk.pl>,
Chen Gong <gong.chen@linux.intel.com>,
linux-kernel <linux-kernel@vger.kernel.org>,
linux-pm <linux-pm@vger.kernel.org>, x86 <x86@kernel.org>
Cc: Fenghua Yu <fenghua.yu@intel.com>
Subject: [PATCH v10 01/14] doc: Add x86 CPU0 online/offline feature
Date: Tue, 13 Nov 2012 11:32:38 -0800 [thread overview]
Message-ID: <1352835171-3958-2-git-send-email-fenghua.yu@intel.com> (raw)
In-Reply-To: <1352835171-3958-1-git-send-email-fenghua.yu@intel.com>
From: Fenghua Yu <fenghua.yu@intel.com>
If CONFIG_BOOTPARAM_HOTPLUG_CPU0 is turned on, CPU0 is hotpluggable. Otherwise,
by default CPU0 is not hotpluggable and kernel parameter cpu0_hotplug enables
CPU0 online/offline feature.
The documentations point out two known CPU0 dependencies. First, resume from
hibernate or suspend always starts from CPU0. So hibernate and suspend are
prevented if CPU0 is offline. Another dependency is PIC interrupts always go
to CPU0.
It's said that some machines may depend on CPU0 to poweroff/reboot. But I
haven't seen such dependency on a few tested machines.
Please let me know if you see any CPU0 dependencies on your machine.
Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
---
Documentation/cpu-hotplug.txt | 24 ++++++++++++++++++++++++
Documentation/kernel-parameters.txt | 14 ++++++++++++++
2 files changed, 38 insertions(+), 0 deletions(-)
diff --git a/Documentation/cpu-hotplug.txt b/Documentation/cpu-hotplug.txt
index 66ef8f3..9f40135 100644
--- a/Documentation/cpu-hotplug.txt
+++ b/Documentation/cpu-hotplug.txt
@@ -207,6 +207,30 @@ by making it not-removable.
In such cases you will also notice that the online file is missing under cpu0.
+Q: Is CPU0 removable on X86?
+A: Yes. If kernel is compiled with CONFIG_BOOTPARAM_HOTPLUG_CPU0=y, CPU0 is
+removable by default. Otherwise, CPU0 is also removable by kernel option
+cpu0_hotplug.
+
+But some features depend on CPU0. Two known dependencies are:
+
+1. Resume from hibernate/suspend depends on CPU0. Hibernate/suspend will fail if
+CPU0 is offline and you need to online CPU0 before hibernate/suspend can
+continue.
+2. PIC interrupts also depend on CPU0. CPU0 can't be removed if a PIC interrupt
+is detected.
+
+It's said poweroff/reboot may depend on CPU0 on some machines although I haven't
+seen any poweroff/reboot failure so far after CPU0 is offline on a few tested
+machines.
+
+Please let me know if you know or see any other dependencies of CPU0.
+
+If the dependencies are under your control, you can turn on CPU0 hotplug feature
+either by CONFIG_BOOTPARAM_HOTPLUG_CPU0 or by kernel parameter cpu0_hotplug.
+
+--Fenghua Yu <fenghua.yu@intel.com>
+
Q: How do i find out if a particular CPU is not removable?
A: Depending on the implementation, some architectures may show this by the
absence of the "online" file. This is done if it can be determined ahead of
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 4aa9ca0..57a853d6 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -1988,6 +1988,20 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
nox2apic [X86-64,APIC] Do not enable x2APIC mode.
+ cpu0_hotplug [X86] Turn on CPU0 hotplug feature when
+ CONFIG_BOOTPARAM_HOTPLUG_CPU0 is off.
+ Some features depend on CPU0. Known dependencies are:
+ 1. Resume from suspend/hibernate depends on CPU0.
+ Suspend/hibernate will fail if CPU0 is offline and you
+ need to online CPU0 before suspend/hibernate.
+ 2. PIC interrupts also depend on CPU0. CPU0 can't be
+ removed if a PIC interrupt is detected.
+ It's said poweroff/reboot may depend on CPU0 on some
+ machines although I haven't seen such issues so far
+ after CPU0 is offline on a few tested machines.
+ If the dependencies are under your control, you can
+ turn on cpu0_hotplug.
+
nptcg= [IA-64] Override max number of concurrent global TLB
purges which is reported from either PAL_VM_SUMMARY or
SAL PALO.
--
1.7.2
next prev parent reply other threads:[~2012-11-13 19:32 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-13 19:32 [PATCH v10 0/14] x86: Arbitrary CPU hot(un)plug support Fenghua Yu
2012-11-13 19:32 ` Fenghua Yu [this message]
2012-11-13 19:32 ` [PATCH v10 02/14] x86, Kconfig: Add config switch for CPU0 hotplug Fenghua Yu
2012-11-13 19:32 ` [PATCH v10 03/14] x86, topology: Don't offline CPU0 if any PIC irq can not be migrated out of it Fenghua Yu
2012-11-13 19:32 ` [PATCH v10 04/14] x86, hotplug: Support functions for CPU0 online/offline Fenghua Yu
2012-11-13 19:32 ` [PATCH v10 05/14] x86, hotplug, suspend: Online CPU0 for suspend or hibernate Fenghua Yu
2012-11-13 19:32 ` [PATCH v10 06/14] kernel/cpu.c: Add comment for priority in cpu_hotplug_pm_callback Fenghua Yu
2012-11-13 19:32 ` [PATCH v10 07/14] x86-64, hotplug: Add start_cpu0() entry point to head_64.S Fenghua Yu
2012-11-13 19:32 ` [PATCH v10 08/14] x86-32, hotplug: Add start_cpu0() entry point to head_32.S Fenghua Yu
2012-11-13 19:32 ` [PATCH v10 09/14] x86, hotplug: Wake up CPU0 via NMI instead of INIT, SIPI, SIPI Fenghua Yu
2012-11-13 19:32 ` [PATCH v10 10/14] x86, hotplug: During CPU0 online, enable x2apic, set_numa_node Fenghua Yu
2012-11-13 19:32 ` [PATCH v10 11/14] x86, hotplug: The first online processor saves the MTRR state Fenghua Yu
2012-11-13 19:32 ` [PATCH v10 12/14] x86, hotplug: Handle retrigger irq by the first available CPU Fenghua Yu
2012-11-13 19:32 ` [PATCH v10 13/14] x86/i387.c: Initialize thread xstate only on CPU0 only once Fenghua Yu
2012-11-13 19:32 ` [PATCH v10 14/14] x86, topology: Debug CPU00 hotplug Fenghua Yu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1352835171-3958-2-git-send-email-fenghua.yu@intel.com \
--to=fenghua.yu@intel.com \
--cc=akpm@linux-foundation.org \
--cc=arjan@linux.intel.com \
--cc=asit.k.mallick@intel.com \
--cc=gong.chen@linux.intel.com \
--cc=hpa@zytor.com \
--cc=len.brown@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=rdunlap@xenotime.net \
--cc=rjw@sisk.pl \
--cc=srivatsa.bhat@linux.vnet.ibm.com \
--cc=suresh.b.siddha@intel.com \
--cc=tglx@linutronix.de \
--cc=tony.luck@intel.com \
--cc=torvalds@linux-foundation.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).