Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -915,7 +915,8 @@ config CAVIUM_OCTEON_SOC
	select USE_OF
	select ARCH_SPARSEMEM_ENABLE
	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 MTD_COMPLEX_MAPPINGS
	select SYS_SUPPORTS_RELOCATABLE
@@ -2725,6 +2726,15 @@ config NR_CPUS
config MIPS_PERF_SHARED_TC_COUNTERS
	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
#
+1 −1
Original line number Diff line number Diff line
@@ -29,7 +29,7 @@ extern cpumask_t cpu_foreign_map[];

/* Map from cpu id to sequential logical cpu number.  This will only
   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]

/* The reverse map from sequential logical cpu number to cpu id.  */
+1 −1
Original line number Diff line number Diff line
@@ -48,7 +48,7 @@
#include <asm/setup.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);

int __cpu_logical_map[NR_CPUS];		/* Map logical to physical */