提交 0f3f506b 编写于 作者: H Huacai Chen 提交者: Ralf Baechle

MIPS: Support hard limit of cpu count (nr_cpu_ids)

On MIPS currently, only the soft limit of cpu count (maxcpus) has its
effect, this patch enable the hard limit (nr_cpus) as well. Processor
cores which greater than maxcpus and less than nr_cpus can be taken up
via cpu hotplug. The code is borrowed from X86.
Signed-off-by: NHuacai Chen <chenhc@lemote.com>
Reviewed-by: NAndreas Herrmann <andreas.herrmann@caviumnetworks.com>
Cc: John Crispin <john@phrozen.org>
Cc: Steven J. Hill <Steven.Hill@imgtec.com>
Cc: Aurelien Jarno <aurelien@aurel32.net>
Cc: linux-mips@linux-mips.org
Cc: Fuxin Zhang <zhangfx@lemote.com>
Cc: Zhangjin Wu <wuzhangjin@gmail.com>
Patchwork: https://patchwork.linux-mips.org/patch/7183/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
上级 e5cd534a
...@@ -729,6 +729,25 @@ static void __init resource_init(void) ...@@ -729,6 +729,25 @@ static void __init resource_init(void)
} }
} }
#ifdef CONFIG_SMP
static void __init prefill_possible_map(void)
{
int i, possible = num_possible_cpus();
if (possible > nr_cpu_ids)
possible = nr_cpu_ids;
for (i = 0; i < possible; i++)
set_cpu_possible(i, true);
for (; i < NR_CPUS; i++)
set_cpu_possible(i, false);
nr_cpu_ids = possible;
}
#else
static inline void prefill_possible_map(void) {}
#endif
void __init setup_arch(char **cmdline_p) void __init setup_arch(char **cmdline_p)
{ {
cpu_probe(); cpu_probe();
...@@ -752,6 +771,7 @@ void __init setup_arch(char **cmdline_p) ...@@ -752,6 +771,7 @@ void __init setup_arch(char **cmdline_p)
resource_init(); resource_init();
plat_smp_setup(); plat_smp_setup();
prefill_possible_map();
cpu_cache_init(); cpu_cache_init();
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册