提交 89b08200 编写于 作者: G Glauber Costa 提交者: Ingo Molnar

x86: make x86_64 accept the max_cpus parameter

The parameter passing parsing is done in the common smpboot.c
Signed-off-by: NGlauber Costa <gcosta@redhat.com>
Signed-off-by: NIngo Molnar <mingo@elte.hu>
上级 69c18c15
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
/* Have we found an MP table */ /* Have we found an MP table */
int smp_found_config; int smp_found_config;
unsigned int __cpuinitdata maxcpus = NR_CPUS;
/* /*
* Various Linux-internal data structures created from the * Various Linux-internal data structures created from the
...@@ -115,6 +116,12 @@ static void __cpuinit MP_processor_info(struct mpc_config_processor *m) ...@@ -115,6 +116,12 @@ static void __cpuinit MP_processor_info(struct mpc_config_processor *m)
return; return;
} }
if (num_processors >= maxcpus) {
printk(KERN_WARNING "WARNING: maxcpus limit of %i reached."
" Processor ignored.\n", maxcpus);
return;
}
num_processors++; num_processors++;
cpus_complement(tmp_map, cpu_present_map); cpus_complement(tmp_map, cpu_present_map);
cpu = first_cpu(tmp_map); cpu = first_cpu(tmp_map);
......
...@@ -268,3 +268,15 @@ void __cpu_die(unsigned int cpu) ...@@ -268,3 +268,15 @@ void __cpu_die(unsigned int cpu)
} }
#endif #endif
/*
* If the BIOS enumerates physical processors before logical,
* maxcpus=N at enumeration-time can be used to disable HT.
*/
static int __init parse_maxcpus(char *arg)
{
extern unsigned int maxcpus;
maxcpus = simple_strtoul(arg, NULL, 0);
return 0;
}
early_param("maxcpus", parse_maxcpus);
...@@ -1113,16 +1113,3 @@ void __init smp_intr_init(void) ...@@ -1113,16 +1113,3 @@ void __init smp_intr_init(void)
/* IPI for generic function call */ /* IPI for generic function call */
set_intr_gate(CALL_FUNCTION_VECTOR, call_function_interrupt); set_intr_gate(CALL_FUNCTION_VECTOR, call_function_interrupt);
} }
/*
* If the BIOS enumerates physical processors before logical,
* maxcpus=N at enumeration-time can be used to disable HT.
*/
static int __init parse_maxcpus(char *arg)
{
extern unsigned int maxcpus;
maxcpus = simple_strtoul(arg, NULL, 0);
return 0;
}
early_param("maxcpus", parse_maxcpus);
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册