mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
[PATCH] s390: possible_cpus parameter
Introduce possible_cpus command line option. Hard sets the number of bits set in cpu_possible_map. Unlike the additional_cpus parameter this one guarantees that num_possible_cpus() will stay constant even if the system gets rebooted and a different number of cpus are present at startup. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
255acee706
commit
37a3302618
@ -58,6 +58,12 @@ 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.
|
||||
|
||||
|
||||
possible_cpus=n [s390 only] use this to set hotpluggable cpus.
|
||||
This option sets possible_cpus bits in
|
||||
cpu_possible_map. Thus keeping the numbers of bits set
|
||||
constant even if the machine gets rebooted.
|
||||
This option overrides additional_cpus.
|
||||
|
||||
CPU maps and such
|
||||
-----------------
|
||||
[More on cpumaps and primitive to manipulate, please check
|
||||
|
@ -673,15 +673,16 @@ __cpu_up(unsigned int cpu)
|
||||
}
|
||||
|
||||
static unsigned int __initdata additional_cpus;
|
||||
static unsigned int __initdata possible_cpus;
|
||||
|
||||
void __init smp_setup_cpu_possible_map(void)
|
||||
{
|
||||
unsigned int pcpus, cpu;
|
||||
|
||||
pcpus = smp_count_cpus() + additional_cpus;
|
||||
pcpus = min(smp_count_cpus() + additional_cpus, (unsigned int) NR_CPUS);
|
||||
|
||||
if (pcpus > NR_CPUS)
|
||||
pcpus = NR_CPUS;
|
||||
if (possible_cpus)
|
||||
pcpus = min(possible_cpus, (unsigned int) NR_CPUS);
|
||||
|
||||
for (cpu = 0; cpu < pcpus; cpu++)
|
||||
cpu_set(cpu, cpu_possible_map);
|
||||
@ -698,6 +699,13 @@ static int __init setup_additional_cpus(char *s)
|
||||
}
|
||||
early_param("additional_cpus", setup_additional_cpus);
|
||||
|
||||
static int __init setup_possible_cpus(char *s)
|
||||
{
|
||||
possible_cpus = simple_strtoul(s, NULL, 0);
|
||||
return 0;
|
||||
}
|
||||
early_param("possible_cpus", setup_possible_cpus);
|
||||
|
||||
int
|
||||
__cpu_disable(void)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user