[RFC PATCH 5/5] powerpc/smp: Remap boot CPU onto core 0 if >= nr_cpu_ids
Aneesh Kumar K.V
aneesh.kumar at kernel.org
Tue Jan 2 15:46:04 AEDT 2024
Michael Ellerman <mpe at ellerman.id.au> writes:
....
> #ifdef CONFIG_PPC64
> int boot_cpu_hwid = -1;
> @@ -492,12 +493,26 @@ void __init smp_setup_cpu_maps(void)
> avail = !of_property_match_string(dn,
> "enable-method", "spin-table");
>
> - cpu = assign_threads(cpu, nthreads, avail, intserv);
> + if (boot_core_hwid >= 0) {
> + if (cpu == 0) {
> + pr_info("Skipping CPU node %pOF to allow for boot core.\n", dn);
> + cpu = nthreads;
> + continue;
> + }
>
> - if (cpu >= nr_cpu_ids) {
> + if (be32_to_cpu(intserv[0]) == boot_core_hwid) {
> + pr_info("Renumbered boot core %pOF to logical 0\n", dn);
> + assign_threads(0, nthreads, avail, intserv);
> + of_node_put(dn);
> + break;
>
I was expecting a 'continue' here. Why 'break' the loop? The condition that
should break the loop should be cpu >= nr_cpu_ids
> + }
> + } else if (cpu >= nr_cpu_ids) {
> of_node_put(dn);
> break;
> }
> +
> + if (cpu < nr_cpu_ids)
> + cpu = assign_threads(cpu, nthreads, avail, intserv);
> }
>
> /* If no SMT supported, nthreads is forced to 1 */
> --
> 2.43.0
-aneesh
More information about the Linuxppc-dev
mailing list