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
|
||||
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.,
|
||||
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.
|
||||
|
||||
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
|
||||
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
|
||||
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
|
||||
cpu_possible_map.
|
||||
cpu_possible_mask.
|
||||
|
||||
possible_cpus=n [s390,x86_64] use this to set hotpluggable cpus.
|
||||
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.
|
||||
|
||||
CPU maps and such
|
||||
|
@ -76,7 +76,7 @@ CPU maps and such
|
|||
[More on cpumaps and primitive to manipulate, please check
|
||||
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
|
||||
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
|
||||
|
@ -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
|
||||
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
|
||||
interrupts from devices. Its cleared when a cpu is brought down using
|
||||
__cpu_disable(), before which all OS services including interrupts are
|
||||
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
|
||||
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
|
||||
|
@ -99,22 +99,22 @@ at which time hotplug is disabled.
|
|||
|
||||
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
|
||||
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.
|
||||
|
||||
#include <linux/cpumask.h>
|
||||
|
||||
for_each_possible_cpu - Iterate over cpu_possible_map
|
||||
for_each_online_cpu - Iterate over cpu_online_map
|
||||
for_each_present_cpu - Iterate over cpu_present_map
|
||||
for_each_possible_cpu - Iterate over cpu_possible_mask
|
||||
for_each_online_cpu - Iterate over cpu_online_mask
|
||||
for_each_present_cpu - Iterate over cpu_present_mask
|
||||
for_each_cpu_mask(x,mask) - Iterate over some random collection of cpu mask.
|
||||
|
||||
#include <linux/cpu.h>
|
||||
get_online_cpus() and put_online_cpus():
|
||||
|
||||
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
|
||||
preempt_disable() and preempt_enable() for those sections.
|
||||
Just remember the critical section cannot call any
|
||||
|
|
|
@ -450,7 +450,7 @@ setup_smp(void)
|
|||
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]);
|
||||
}
|
||||
|
||||
|
|
|
@ -839,7 +839,7 @@ static __init int setup_additional_cpus(char *s)
|
|||
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 allocated by some modules at init time, and dont expect to
|
||||
* 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)
|
||||
{
|
||||
|
|
|
@ -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
|
||||
* 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
|
||||
* 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?
|
||||
*
|
||||
* 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
|
||||
* 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
|
||||
* hv_flush_remote() to flush all caches. Note that if there are
|
||||
* 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();
|
||||
}
|
||||
|
||||
/* 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)
|
||||
{
|
||||
int cpu;
|
||||
|
|
|
@ -1414,8 +1414,8 @@ endif # MODULES
|
|||
config INIT_ALL_POSSIBLE
|
||||
bool
|
||||
help
|
||||
Back when each arch used to define their own cpu_online_map and
|
||||
cpu_possible_map, some of them chose to initialize cpu_possible_map
|
||||
Back when each arch used to define their own cpu_online_mask and
|
||||
cpu_possible_mask, some of them chose to initialize cpu_possible_mask
|
||||
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
|
||||
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
|
||||
* 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,
|
||||
* return cpu_online_map. Or if passed a NULL cs from an exit'ing
|
||||
* task, return cpu_online_map.
|
||||
* return cpu_online_mask. Or if passed a NULL cs from an exit'ing
|
||||
* task, return cpu_online_mask.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
@ -867,7 +867,7 @@ static int update_cpumask(struct cpuset *cs, struct cpuset *trialcs,
|
|||
int retval;
|
||||
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)
|
||||
return -EACCES;
|
||||
|
||||
|
@ -2149,7 +2149,7 @@ void __init cpuset_init_smp(void)
|
|||
*
|
||||
* Description: Returns the cpumask_var_t cpus_allowed of the cpuset
|
||||
* 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.
|
||||
**/
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче