]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
riscv: Raise default NR_CPUS for 64BIT to 256
authorVivian Wang <wangruikang@iscas.ac.cn>
Thu, 25 Jun 2026 06:34:15 +0000 (14:34 +0800)
committerPaul Walmsley <pjw@kernel.org>
Thu, 25 Jun 2026 17:41:15 +0000 (11:41 -0600)
SpacemiT has already produced a 80-core RVA23 RISC-V server [1], and
going further back, the dual-socket SG2042-based Sophgo Pisces has 128
cores (although that had some issues achieving mainline support).
Therefore, an NR_CPUS of 64 is not enough.

Raise default NR_CPUS to 256 for 64BIT (when !RISCV_SBI_V01, since very
old firmware can't support more than 64 cores). The number was picked as
a power of two that is at least double the known max. I believe this
should be the right balance between not wasting too much memory and not
having to touch this too often.

Ubuntu has already been shipping NR_CPUS=512 for riscv64. We have also
been testing NR_CPUS=256 internally at ISCAS and found negligible
performance impact and no ill effects.

Reported-by: Lufei Zheng <lufei.zheng@spacemit.com>
Link: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1140651
Suggested-by: Han Gao <gaohan@iscas.ac.cn>
Signed-off-by: Vivian Wang <wangruikang@iscas.ac.cn>
Link: https://patch.msgid.link/20260625-riscv-more-nr-cpus-v1-1-5da8c72b9269@iscas.ac.cn
Signed-off-by: Paul Walmsley <pjw@kernel.org>
arch/riscv/Kconfig

index 3f0a647218e407f72890e83722ba8472858c1a59..c0a6992933e411f745ef113df84a00ff7cf4a800 100644 (file)
@@ -454,7 +454,8 @@ config NR_CPUS
        range 2 32 if RISCV_SBI_V01 && 32BIT
        range 2 64 if RISCV_SBI_V01 && 64BIT
        default "32" if 32BIT
-       default "64" if 64BIT
+       default "64" if RISCV_SBI_V01 && 64BIT
+       default "256" if !RISCV_SBI_V01 && 64BIT
 
 config HOTPLUG_CPU
        bool "Support for hot-pluggable CPUs"