The branch main has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=5720b8de4832da70e76b9a72c679d0b168d7834e
commit 5720b8de4832da70e76b9a72c679d0b168d7834e Author: Jessica Clarke <[email protected]> AuthorDate: 2021-06-15 00:21:38 +0000 Commit: Jessica Clarke <[email protected]> CommitDate: 2021-06-15 00:22:13 +0000 riscv: Add an hw.ncpu tunable to limit the number of cores Based on a similar change to arm64 in 01a8235ea61c. Reviewed by: mhorne MRC after: 1 week Differential Revision: https://reviews.freebsd.org/D30655 --- sys/riscv/riscv/mp_machdep.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/sys/riscv/riscv/mp_machdep.c b/sys/riscv/riscv/mp_machdep.c index cdcc86e715dd..1dadf19ce51f 100644 --- a/sys/riscv/riscv/mp_machdep.c +++ b/sys/riscv/riscv/mp_machdep.c @@ -532,9 +532,9 @@ cpu_check_mmu(u_int id, phandle_t node, u_int addr_size, pcell_t *reg) void cpu_mp_setmaxid(void) { -#ifdef FDT int cores; +#ifdef FDT cores = ofw_cpu_early_foreach(cpu_check_mmu, true); if (cores > 0) { cores = MIN(cores, MAXCPU); @@ -543,12 +543,19 @@ cpu_mp_setmaxid(void) mp_ncpus = cores; mp_maxid = cores - 1; cpu_enum_method = CPUS_FDT; - return; - } + } else #endif + { + if (bootverbose) + printf("No CPU data, limiting to 1 core\n"); + mp_ncpus = 1; + mp_maxid = 0; + } - if (bootverbose) - printf("No CPU data, limiting to 1 core\n"); - mp_ncpus = 1; - mp_maxid = 0; + if (TUNABLE_INT_FETCH("hw.ncpu", &cores)) { + if (cores > 0 && cores < mp_ncpus) { + mp_ncpus = cores; + mp_maxid = cores - 1; + } + } } _______________________________________________ [email protected] mailing list https://lists.freebsd.org/mailman/listinfo/dev-commits-src-all To unsubscribe, send any mail to "[email protected]"
