documentation: remove references to cpu_*_map.
This has been obsolescent for a while, fix documentation and misc comments. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Родитель
88d8cd52bc
Коммит
5f054e31c6
|
@ -217,7 +217,7 @@ and name space for cpusets, with a minimum of additional kernel code.
|
||||||
|
|
||||||
The cpus and mems files in the root (top_cpuset) cpuset are
|
The cpus and mems files in the root (top_cpuset) cpuset are
|
||||||
read-only. The cpus file automatically tracks the value of
|
read-only. The cpus file automatically tracks the value of
|
||||||
cpu_online_map using a CPU hotplug notifier, and the mems file
|
cpu_online_mask using a CPU hotplug notifier, and the mems file
|
||||||
automatically tracks the value of node_states[N_HIGH_MEMORY]--i.e.,
|
automatically tracks the value of node_states[N_HIGH_MEMORY]--i.e.,
|
||||||
nodes with memory--using the cpuset_track_online_nodes() hook.
|
nodes with memory--using the cpuset_track_online_nodes() hook.
|
||||||
|
|
||||||
|
|
|
@ -47,7 +47,7 @@ maxcpus=n Restrict boot time cpus to n. Say if you have 4 cpus, using
|
||||||
other cpus later online, read FAQ's for more info.
|
other cpus later online, read FAQ's for more info.
|
||||||
|
|
||||||
additional_cpus=n (*) Use this to limit hotpluggable cpus. This option sets
|
additional_cpus=n (*) Use this to limit hotpluggable cpus. This option sets
|
||||||
cpu_possible_map = cpu_present_map + additional_cpus
|
cpu_possible_mask = cpu_present_mask + additional_cpus
|
||||||
|
|
||||||
cede_offline={"off","on"} Use this option to disable/enable putting offlined
|
cede_offline={"off","on"} Use this option to disable/enable putting offlined
|
||||||
processors to an extended H_CEDE state on
|
processors to an extended H_CEDE state on
|
||||||
|
@ -64,11 +64,11 @@ should only rely on this to count the # of cpus, but *MUST* not rely
|
||||||
on the apicid values in those tables for disabled apics. In the event
|
on the apicid values in those tables for disabled apics. In the event
|
||||||
BIOS doesn't mark such hot-pluggable cpus as disabled entries, one could
|
BIOS doesn't mark such hot-pluggable cpus as disabled entries, one could
|
||||||
use this parameter "additional_cpus=x" to represent those cpus in the
|
use this parameter "additional_cpus=x" to represent those cpus in the
|
||||||
cpu_possible_map.
|
cpu_possible_mask.
|
||||||
|
|
||||||
possible_cpus=n [s390,x86_64] use this to set hotpluggable cpus.
|
possible_cpus=n [s390,x86_64] use this to set hotpluggable cpus.
|
||||||
This option sets possible_cpus bits in
|
This option sets possible_cpus bits in
|
||||||
cpu_possible_map. Thus keeping the numbers of bits set
|
cpu_possible_mask. Thus keeping the numbers of bits set
|
||||||
constant even if the machine gets rebooted.
|
constant even if the machine gets rebooted.
|
||||||
|
|
||||||
CPU maps and such
|
CPU maps and such
|
||||||
|
@ -76,7 +76,7 @@ CPU maps and such
|
||||||
[More on cpumaps and primitive to manipulate, please check
|
[More on cpumaps and primitive to manipulate, please check
|
||||||
include/linux/cpumask.h that has more descriptive text.]
|
include/linux/cpumask.h that has more descriptive text.]
|
||||||
|
|
||||||
cpu_possible_map: Bitmap of possible CPUs that can ever be available in the
|
cpu_possible_mask: Bitmap of possible CPUs that can ever be available in the
|
||||||
system. This is used to allocate some boot time memory for per_cpu variables
|
system. This is used to allocate some boot time memory for per_cpu variables
|
||||||
that aren't designed to grow/shrink as CPUs are made available or removed.
|
that aren't designed to grow/shrink as CPUs are made available or removed.
|
||||||
Once set during boot time discovery phase, the map is static, i.e no bits
|
Once set during boot time discovery phase, the map is static, i.e no bits
|
||||||
|
@ -84,13 +84,13 @@ 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_map: Bitmap of all CPUs currently online. Its set in __cpu_up()
|
cpu_online_mask: Bitmap of all CPUs currently online. Its 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. Its 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.
|
||||||
|
|
||||||
cpu_present_map: Bitmap of CPUs currently present in the system. Not all
|
cpu_present_mask: Bitmap of CPUs currently present in the system. Not all
|
||||||
of them may be online. When physical hotplug is processed by the relevant
|
of them may be online. When physical hotplug is processed by the relevant
|
||||||
subsystem (e.g ACPI) can change and new bit either be added or removed
|
subsystem (e.g ACPI) can change and new bit either be added or removed
|
||||||
from the map depending on the event is hot-add/hot-remove. There are currently
|
from the map depending on the event is hot-add/hot-remove. There are currently
|
||||||
|
@ -99,22 +99,22 @@ at which time hotplug is disabled.
|
||||||
|
|
||||||
You really dont need to manipulate any of the system cpu maps. They should
|
You really dont need to manipulate any of the system cpu maps. They should
|
||||||
be read-only for most use. When setting up per-cpu resources almost always use
|
be read-only for most use. When setting up per-cpu resources almost always use
|
||||||
cpu_possible_map/for_each_possible_cpu() to iterate.
|
cpu_possible_mask/for_each_possible_cpu() to iterate.
|
||||||
|
|
||||||
Never use anything other than cpumask_t to represent bitmap of CPUs.
|
Never use anything other than cpumask_t to represent bitmap of CPUs.
|
||||||
|
|
||||||
#include <linux/cpumask.h>
|
#include <linux/cpumask.h>
|
||||||
|
|
||||||
for_each_possible_cpu - Iterate over cpu_possible_map
|
for_each_possible_cpu - Iterate over cpu_possible_mask
|
||||||
for_each_online_cpu - Iterate over cpu_online_map
|
for_each_online_cpu - Iterate over cpu_online_mask
|
||||||
for_each_present_cpu - Iterate over cpu_present_map
|
for_each_present_cpu - Iterate over cpu_present_mask
|
||||||
for_each_cpu_mask(x,mask) - Iterate over some random collection of cpu mask.
|
for_each_cpu_mask(x,mask) - Iterate over some random collection of cpu mask.
|
||||||
|
|
||||||
#include <linux/cpu.h>
|
#include <linux/cpu.h>
|
||||||
get_online_cpus() and put_online_cpus():
|
get_online_cpus() and put_online_cpus():
|
||||||
|
|
||||||
The above calls are used to inhibit cpu hotplug operations. While the
|
The above calls are used to inhibit cpu hotplug operations. While the
|
||||||
cpu_hotplug.refcount is non zero, the cpu_online_map will not change.
|
cpu_hotplug.refcount is non zero, the cpu_online_mask will not change.
|
||||||
If you merely need to avoid cpus going away, you could also use
|
If you merely need to avoid cpus going away, you could also use
|
||||||
preempt_disable() and preempt_enable() for those sections.
|
preempt_disable() and preempt_enable() for those sections.
|
||||||
Just remember the critical section cannot call any
|
Just remember the critical section cannot call any
|
||||||
|
|
|
@ -450,7 +450,7 @@ setup_smp(void)
|
||||||
smp_num_probed = 1;
|
smp_num_probed = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
printk(KERN_INFO "SMP: %d CPUs probed -- cpu_present_map = %lx\n",
|
printk(KERN_INFO "SMP: %d CPUs probed -- cpu_present_mask = %lx\n",
|
||||||
smp_num_probed, cpumask_bits(cpu_present_mask)[0]);
|
smp_num_probed, cpumask_bits(cpu_present_mask)[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -839,7 +839,7 @@ static __init int setup_additional_cpus(char *s)
|
||||||
early_param("additional_cpus", setup_additional_cpus);
|
early_param("additional_cpus", setup_additional_cpus);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* cpu_possible_map should be static, it cannot change as CPUs
|
* cpu_possible_mask should be static, it cannot change as CPUs
|
||||||
* are onlined, or offlined. The reason is per-cpu data-structures
|
* are onlined, or offlined. The reason is per-cpu data-structures
|
||||||
* are allocated by some modules at init time, and dont expect to
|
* are allocated by some modules at init time, and dont expect to
|
||||||
* do this dynamically on cpu arrival/departure.
|
* do this dynamically on cpu arrival/departure.
|
||||||
|
|
|
@ -78,7 +78,7 @@ static inline void octeon_send_ipi_mask(const struct cpumask *mask,
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Detect available CPUs, populate cpu_possible_map
|
* Detect available CPUs, populate cpu_possible_mask
|
||||||
*/
|
*/
|
||||||
static void octeon_smp_hotplug_setup(void)
|
static void octeon_smp_hotplug_setup(void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -146,7 +146,7 @@ static void __cpuinit yos_boot_secondary(int cpu, struct task_struct *idle)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Detect available CPUs, populate cpu_possible_map before smp_init
|
* Detect available CPUs, populate cpu_possible_mask before smp_init
|
||||||
*
|
*
|
||||||
* We don't want to start the secondary CPU yet nor do we have a nice probing
|
* We don't want to start the secondary CPU yet nor do we have a nice probing
|
||||||
* feature in PMON so we just assume presence of the secondary core.
|
* feature in PMON so we just assume presence of the secondary core.
|
||||||
|
|
|
@ -138,7 +138,7 @@ static void __cpuinit bcm1480_boot_secondary(int cpu, struct task_struct *idle)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Use CFE to find out how many CPUs are available, setting up
|
* Use CFE to find out how many CPUs are available, setting up
|
||||||
* cpu_possible_map and the logical/physical mappings.
|
* cpu_possible_mask and the logical/physical mappings.
|
||||||
* XXXKW will the boot CPU ever not be physical 0?
|
* XXXKW will the boot CPU ever not be physical 0?
|
||||||
*
|
*
|
||||||
* Common setup before any secondaries are started
|
* Common setup before any secondaries are started
|
||||||
|
|
|
@ -1100,7 +1100,7 @@ EXPORT_SYMBOL(hash_for_home_map);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* cpu_cacheable_map lists all the cpus whose caches the hypervisor can
|
* cpu_cacheable_map lists all the cpus whose caches the hypervisor can
|
||||||
* flush on our behalf. It is set to cpu_possible_map OR'ed with
|
* flush on our behalf. It is set to cpu_possible_mask OR'ed with
|
||||||
* hash_for_home_map, and it is what should be passed to
|
* hash_for_home_map, and it is what should be passed to
|
||||||
* hv_flush_remote() to flush all caches. Note that if there are
|
* hv_flush_remote() to flush all caches. Note that if there are
|
||||||
* dedicated hypervisor driver tiles that have authorized use of their
|
* dedicated hypervisor driver tiles that have authorized use of their
|
||||||
|
|
|
@ -967,7 +967,7 @@ void xen_setup_shared_info(void)
|
||||||
xen_setup_mfn_list_list();
|
xen_setup_mfn_list_list();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This is called once we have the cpu_possible_map */
|
/* This is called once we have the cpu_possible_mask */
|
||||||
void xen_setup_vcpu_info_placement(void)
|
void xen_setup_vcpu_info_placement(void)
|
||||||
{
|
{
|
||||||
int cpu;
|
int cpu;
|
||||||
|
|
|
@ -1414,8 +1414,8 @@ endif # MODULES
|
||||||
config INIT_ALL_POSSIBLE
|
config INIT_ALL_POSSIBLE
|
||||||
bool
|
bool
|
||||||
help
|
help
|
||||||
Back when each arch used to define their own cpu_online_map and
|
Back when each arch used to define their own cpu_online_mask and
|
||||||
cpu_possible_map, some of them chose to initialize cpu_possible_map
|
cpu_possible_mask, some of them chose to initialize cpu_possible_mask
|
||||||
with all 1s, and others with all 0s. When they were centralised,
|
with all 1s, and others with all 0s. When they were centralised,
|
||||||
it was better to provide this option than to break all the archs
|
it was better to provide this option than to break all the archs
|
||||||
and have several arch maintainers pursuing me down dark alleys.
|
and have several arch maintainers pursuing me down dark alleys.
|
||||||
|
|
|
@ -270,11 +270,11 @@ static struct file_system_type cpuset_fs_type = {
|
||||||
* are online. If none are online, walk up the cpuset hierarchy
|
* are online. If none are online, walk up the cpuset hierarchy
|
||||||
* until we find one that does have some online cpus. If we get
|
* until we find one that does have some online cpus. If we get
|
||||||
* all the way to the top and still haven't found any online cpus,
|
* all the way to the top and still haven't found any online cpus,
|
||||||
* return cpu_online_map. Or if passed a NULL cs from an exit'ing
|
* return cpu_online_mask. Or if passed a NULL cs from an exit'ing
|
||||||
* task, return cpu_online_map.
|
* task, return cpu_online_mask.
|
||||||
*
|
*
|
||||||
* One way or another, we guarantee to return some non-empty subset
|
* One way or another, we guarantee to return some non-empty subset
|
||||||
* of cpu_online_map.
|
* of cpu_online_mask.
|
||||||
*
|
*
|
||||||
* Call with callback_mutex held.
|
* Call with callback_mutex held.
|
||||||
*/
|
*/
|
||||||
|
@ -867,7 +867,7 @@ static int update_cpumask(struct cpuset *cs, struct cpuset *trialcs,
|
||||||
int retval;
|
int retval;
|
||||||
int is_load_balanced;
|
int is_load_balanced;
|
||||||
|
|
||||||
/* top_cpuset.cpus_allowed tracks cpu_online_map; it's read-only */
|
/* top_cpuset.cpus_allowed tracks cpu_online_mask; it's read-only */
|
||||||
if (cs == &top_cpuset)
|
if (cs == &top_cpuset)
|
||||||
return -EACCES;
|
return -EACCES;
|
||||||
|
|
||||||
|
@ -2149,7 +2149,7 @@ void __init cpuset_init_smp(void)
|
||||||
*
|
*
|
||||||
* Description: Returns the cpumask_var_t cpus_allowed of the cpuset
|
* Description: Returns the cpumask_var_t cpus_allowed of the cpuset
|
||||||
* attached to the specified @tsk. Guaranteed to return some non-empty
|
* attached to the specified @tsk. Guaranteed to return some non-empty
|
||||||
* subset of cpu_online_map, even if this means going outside the
|
* subset of cpu_online_mask, even if this means going outside the
|
||||||
* tasks cpuset.
|
* tasks cpuset.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче