Re: [v1 PATCH 4/4] RISC-V: Support nr_cpus command line option.
From: Damien Le Moal
Date: Tue Mar 19 2019 - 19:57:11 EST
On 2019/03/20 7:20, Atish Patra wrote:
> If nr_cpus command line option is set, maximum possible cpu should be
> set to that value.
>
> Signed-off-by: Atish Patra <atish.patra@xxxxxxx>
> ---
> arch/riscv/kernel/smpboot.c | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/arch/riscv/kernel/smpboot.c b/arch/riscv/kernel/smpboot.c
> index 609475c5..a8fe590c 100644
> --- a/arch/riscv/kernel/smpboot.c
> +++ b/arch/riscv/kernel/smpboot.c
> @@ -86,11 +86,19 @@ void __init setup_smp(void)
> }
>
> cpuid_to_hartid_map(cpuid) = hart;
> - set_cpu_possible(cpuid, true);
This looks weird: the code being changed does not match what patch 3/4 did.
> cpuid++;
> }
>
> BUG_ON(!found_boot_cpu);
> +
> + if (cpuid > nr_cpu_ids)
> + pr_warn("Total number of cpus [%d] are greater than configured via nr_cpus [%d]\n",
"The total number of cpus [%d] is greater than nr_cpus option value [%d]\n"
> + cpuid, nr_cpu_ids);
> +
> + for (cpuid = 1; cpuid < nr_cpu_ids; cpuid++) {
> + if (cpuid_to_hartid_map(cpuid) != INVALID_HARTID)
> + set_cpu_possible(cpuid, true);
> + }
> }
>
> int __cpu_up(unsigned int cpu, struct task_struct *tidle)
>
--
Damien Le Moal
Western Digital Research