66 lines
1.8 KiB
Diff
66 lines
1.8 KiB
Diff
From: Huacai Chen <chenhc@lemote.com>
|
|
Date: Thu, 26 Jun 2014 11:41:25 +0800
|
|
Subject: [1/8] MIPS: Support hard limit of cpu count (nr_cpu_ids)
|
|
Origin: https://git.kernel.org/linus/0f3f506b275517250ee0169ec075d5382967f5f6
|
|
|
|
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: Huacai Chen <chenhc@lemote.com>
|
|
Reviewed-by: Andreas 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: Ralf Baechle <ralf@linux-mips.org>
|
|
---
|
|
arch/mips/kernel/setup.c | 20 ++++++++++++++++++++
|
|
1 file changed, 20 insertions(+)
|
|
|
|
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
|
|
index a842154..2f01201 100644
|
|
--- a/arch/mips/kernel/setup.c
|
|
+++ b/arch/mips/kernel/setup.c
|
|
@@ -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)
|
|
{
|
|
cpu_probe();
|
|
@@ -752,6 +771,7 @@ void __init setup_arch(char **cmdline_p)
|
|
|
|
resource_init();
|
|
plat_smp_setup();
|
|
+ prefill_possible_map();
|
|
|
|
cpu_cache_init();
|
|
}
|
|
--
|
|
1.7.10.4
|
|
|