Commit 7820b84b authored by David Daney's avatar David Daney Committed by James Hogan

MIPS: Allow __cpu_number_map to be larger than NR_CPUS

In systems where the CPU id space is sparse, this allows a smaller
NR_CPUS to be chosen, thus keeping internal data structures smaller.
Signed-off-by: default avatarDavid Daney <david.daney@cavium.com>
Signed-off-by: default avatarCarlos Munoz <cmunoz@caviumnetworks.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/17388/
[jhogan@kernel.org: Add depends on SMP to fix
 "warning: symbol value '' invalid for MIPS_NR_CPU_NR_MAP"]
Signed-off-by: default avatarJames Hogan <jhogan@kernel.org>
parent 239e14d1
...@@ -915,7 +915,8 @@ config CAVIUM_OCTEON_SOC ...@@ -915,7 +915,8 @@ config CAVIUM_OCTEON_SOC
select USE_OF select USE_OF
select ARCH_SPARSEMEM_ENABLE select ARCH_SPARSEMEM_ENABLE
select SYS_SUPPORTS_SMP select SYS_SUPPORTS_SMP
select NR_CPUS_DEFAULT_16 select NR_CPUS_DEFAULT_64
select MIPS_NR_CPU_NR_MAP_1024
select BUILTIN_DTB select BUILTIN_DTB
select MTD_COMPLEX_MAPPINGS select MTD_COMPLEX_MAPPINGS
select SYS_SUPPORTS_RELOCATABLE select SYS_SUPPORTS_RELOCATABLE
...@@ -2725,6 +2726,15 @@ config NR_CPUS ...@@ -2725,6 +2726,15 @@ config NR_CPUS
config MIPS_PERF_SHARED_TC_COUNTERS config MIPS_PERF_SHARED_TC_COUNTERS
bool bool
config MIPS_NR_CPU_NR_MAP_1024
bool
config MIPS_NR_CPU_NR_MAP
int
depends on SMP
default 1024 if MIPS_NR_CPU_NR_MAP_1024
default NR_CPUS if !MIPS_NR_CPU_NR_MAP_1024
# #
# Timer Interrupt Frequency Configuration # Timer Interrupt Frequency Configuration
# #
......
...@@ -29,7 +29,7 @@ extern cpumask_t cpu_foreign_map[]; ...@@ -29,7 +29,7 @@ extern cpumask_t cpu_foreign_map[];
/* Map from cpu id to sequential logical cpu number. This will only /* Map from cpu id to sequential logical cpu number. This will only
not be idempotent when cpus failed to come on-line. */ not be idempotent when cpus failed to come on-line. */
extern int __cpu_number_map[NR_CPUS]; extern int __cpu_number_map[CONFIG_MIPS_NR_CPU_NR_MAP];
#define cpu_number_map(cpu) __cpu_number_map[cpu] #define cpu_number_map(cpu) __cpu_number_map[cpu]
/* The reverse map from sequential logical cpu number to cpu id. */ /* The reverse map from sequential logical cpu number to cpu id. */
......
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
#include <asm/setup.h> #include <asm/setup.h>
#include <asm/maar.h> #include <asm/maar.h>
int __cpu_number_map[NR_CPUS]; /* Map physical to logical */ int __cpu_number_map[CONFIG_MIPS_NR_CPU_NR_MAP]; /* Map physical to logical */
EXPORT_SYMBOL(__cpu_number_map); EXPORT_SYMBOL(__cpu_number_map);
int __cpu_logical_map[NR_CPUS]; /* Map logical to physical */ int __cpu_logical_map[NR_CPUS]; /* Map logical to physical */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment