Documentation: cpu-hotplug: Fix typos
Fix some minor spelling errors and capitalization issues. Signed-off-by: Igor Vuk <parcijala@gmail.com> Signed-off-by: Jonathan Corbet <corbet@lwn.net>
This commit is contained in:
parent
7b855a120b
commit
bb118c56fd
@ -84,9 +84,9 @@ are added or removed anytime. Trimming it accurately for your system needs
|
|||||||
upfront can save some boot time memory. See below for how we use heuristics
|
upfront can save some boot time memory. See below for how we use heuristics
|
||||||
in x86_64 case to keep this under check.
|
in x86_64 case to keep this under check.
|
||||||
|
|
||||||
cpu_online_mask: Bitmap of all CPUs currently online. Its set in __cpu_up()
|
cpu_online_mask: Bitmap of all CPUs currently online. It's set in __cpu_up()
|
||||||
after a cpu is available for kernel scheduling and ready to receive
|
after a CPU is available for kernel scheduling and ready to receive
|
||||||
interrupts from devices. Its cleared when a cpu is brought down using
|
interrupts from devices. It's cleared when a CPU is brought down using
|
||||||
__cpu_disable(), before which all OS services including interrupts are
|
__cpu_disable(), before which all OS services including interrupts are
|
||||||
migrated to another target CPU.
|
migrated to another target CPU.
|
||||||
|
|
||||||
@ -181,7 +181,7 @@ To support physical addition/removal, one would need some BIOS hooks and
|
|||||||
the platform should have something like an attention button in PCI hotplug.
|
the platform should have something like an attention button in PCI hotplug.
|
||||||
CONFIG_ACPI_HOTPLUG_CPU enables ACPI support for physical add/remove of CPUs.
|
CONFIG_ACPI_HOTPLUG_CPU enables ACPI support for physical add/remove of CPUs.
|
||||||
|
|
||||||
Q: How do i logically offline a CPU?
|
Q: How do I logically offline a CPU?
|
||||||
A: Do the following.
|
A: Do the following.
|
||||||
|
|
||||||
#echo 0 > /sys/devices/system/cpu/cpuX/online
|
#echo 0 > /sys/devices/system/cpu/cpuX/online
|
||||||
@ -191,15 +191,15 @@ Once the logical offline is successful, check
|
|||||||
#cat /proc/interrupts
|
#cat /proc/interrupts
|
||||||
|
|
||||||
You should now not see the CPU that you removed. Also online file will report
|
You should now not see the CPU that you removed. Also online file will report
|
||||||
the state as 0 when a cpu if offline and 1 when its online.
|
the state as 0 when a CPU is offline and 1 when it's online.
|
||||||
|
|
||||||
#To display the current cpu state.
|
#To display the current cpu state.
|
||||||
#cat /sys/devices/system/cpu/cpuX/online
|
#cat /sys/devices/system/cpu/cpuX/online
|
||||||
|
|
||||||
Q: Why can't i remove CPU0 on some systems?
|
Q: Why can't I remove CPU0 on some systems?
|
||||||
A: Some architectures may have some special dependency on a certain CPU.
|
A: Some architectures may have some special dependency on a certain CPU.
|
||||||
|
|
||||||
For e.g in IA64 platforms we have ability to sent platform interrupts to the
|
For e.g in IA64 platforms we have ability to send platform interrupts to the
|
||||||
OS. a.k.a Corrected Platform Error Interrupts (CPEI). In current ACPI
|
OS. a.k.a Corrected Platform Error Interrupts (CPEI). In current ACPI
|
||||||
specifications, we didn't have a way to change the target CPU. Hence if the
|
specifications, we didn't have a way to change the target CPU. Hence if the
|
||||||
current ACPI version doesn't support such re-direction, we disable that CPU
|
current ACPI version doesn't support such re-direction, we disable that CPU
|
||||||
@ -231,7 +231,7 @@ either by CONFIG_BOOTPARAM_HOTPLUG_CPU0 or by kernel parameter cpu0_hotplug.
|
|||||||
|
|
||||||
--Fenghua Yu <fenghua.yu@intel.com>
|
--Fenghua Yu <fenghua.yu@intel.com>
|
||||||
|
|
||||||
Q: How do i find out if a particular CPU is not removable?
|
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
|
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
|
absence of the "online" file. This is done if it can be determined ahead of
|
||||||
time that this CPU cannot be removed.
|
time that this CPU cannot be removed.
|
||||||
@ -250,7 +250,7 @@ A: The following happen, listed in no particular order :-)
|
|||||||
- All processes are migrated away from this outgoing CPU to new CPUs.
|
- All processes are migrated away from this outgoing CPU to new CPUs.
|
||||||
The new CPU is chosen from each process' current cpuset, which may be
|
The new CPU is chosen from each process' current cpuset, which may be
|
||||||
a subset of all online CPUs.
|
a subset of all online CPUs.
|
||||||
- All interrupts targeted to this CPU is migrated to a new CPU
|
- All interrupts targeted to this CPU are migrated to a new CPU
|
||||||
- timers/bottom half/task lets are also migrated to a new CPU
|
- timers/bottom half/task lets are also migrated to a new CPU
|
||||||
- Once all services are migrated, kernel calls an arch specific routine
|
- Once all services are migrated, kernel calls an arch specific routine
|
||||||
__cpu_disable() to perform arch specific cleanup.
|
__cpu_disable() to perform arch specific cleanup.
|
||||||
@ -259,10 +259,10 @@ A: The following happen, listed in no particular order :-)
|
|||||||
CPU is being offlined).
|
CPU is being offlined).
|
||||||
|
|
||||||
"It is expected that each service cleans up when the CPU_DOWN_PREPARE
|
"It is expected that each service cleans up when the CPU_DOWN_PREPARE
|
||||||
notifier is called, when CPU_DEAD is called its expected there is nothing
|
notifier is called, when CPU_DEAD is called it's expected there is nothing
|
||||||
running on behalf of this CPU that was offlined"
|
running on behalf of this CPU that was offlined"
|
||||||
|
|
||||||
Q: If i have some kernel code that needs to be aware of CPU arrival and
|
Q: If I have some kernel code that needs to be aware of CPU arrival and
|
||||||
departure, how to i arrange for proper notification?
|
departure, how to i arrange for proper notification?
|
||||||
A: This is what you would need in your kernel code to receive notifications.
|
A: This is what you would need in your kernel code to receive notifications.
|
||||||
|
|
||||||
@ -311,7 +311,7 @@ things will happen if a notifier in path sent a BAD notify code.
|
|||||||
|
|
||||||
Q: I don't see my action being called for all CPUs already up and running?
|
Q: I don't see my action being called for all CPUs already up and running?
|
||||||
A: Yes, CPU notifiers are called only when new CPUs are on-lined or offlined.
|
A: Yes, CPU notifiers are called only when new CPUs are on-lined or offlined.
|
||||||
If you need to perform some action for each cpu already in the system, then
|
If you need to perform some action for each CPU already in the system, then
|
||||||
do this:
|
do this:
|
||||||
|
|
||||||
for_each_online_cpu(i) {
|
for_each_online_cpu(i) {
|
||||||
@ -363,8 +363,8 @@ A: Yes, CPU notifiers are called only when new CPUs are on-lined or offlined.
|
|||||||
callbacks as well as initialize the already online CPUs.
|
callbacks as well as initialize the already online CPUs.
|
||||||
|
|
||||||
|
|
||||||
Q: If i would like to develop cpu hotplug support for a new architecture,
|
Q: If I would like to develop CPU hotplug support for a new architecture,
|
||||||
what do i need at a minimum?
|
what do I need at a minimum?
|
||||||
A: The following are what is required for CPU hotplug infrastructure to work
|
A: The following are what is required for CPU hotplug infrastructure to work
|
||||||
correctly.
|
correctly.
|
||||||
|
|
||||||
@ -382,8 +382,8 @@ A: The following are what is required for CPU hotplug infrastructure to work
|
|||||||
per_cpu state to be set, to ensure the processor
|
per_cpu state to be set, to ensure the processor
|
||||||
dead routine is called to be sure positively.
|
dead routine is called to be sure positively.
|
||||||
|
|
||||||
Q: I need to ensure that a particular cpu is not removed when there is some
|
Q: I need to ensure that a particular CPU is not removed when there is some
|
||||||
work specific to this cpu is in progress.
|
work specific to this CPU in progress.
|
||||||
A: There are two ways. If your code can be run in interrupt context, use
|
A: There are two ways. If your code can be run in interrupt context, use
|
||||||
smp_call_function_single(), otherwise use work_on_cpu(). Note that
|
smp_call_function_single(), otherwise use work_on_cpu(). Note that
|
||||||
work_on_cpu() is slow, and can fail due to out of memory:
|
work_on_cpu() is slow, and can fail due to out of memory:
|
||||||
|
Loading…
Reference in New Issue
Block a user