• Michael Ellerman's avatar
    powerpc/smp: Remap boot CPU onto core 0 if >= nr_cpu_ids · 0875f1ce
    Michael Ellerman authored
    If nr_cpu_ids is too low to include the boot CPU, remap the boot CPU
    onto logical core 0.
    
    This is achieved in two stages. In early_init_dt_scan_cpus() the boot
    CPU is renumbered to be on logical core 0, and the original boot core's
    hardware ID is recorded.
    
    Later in smp_setup_cpu_maps(), if the original boot core ID is set, the
    logical CPU numbers on the 0th core are skipped in the normal device
    tree search over CPU device tree nodes. Then the search is continued
    until the device tree node matching the boot core is found, and those
    CPUs are assigned the CPU numbers starting at 0.
    
    This allows kdump kernels to be booted with low values for nr_cpu_ids
    to conserve memory, while also allowing the crashing/boot CPU to be
    any CPU.
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Tested-by: default avatarWen Xiong <wenxiong@us.ibm.com>
    Link: https://msgid.link/20231229120107.2281153-5-mpe@ellerman.id.au
    0875f1ce
setup-common.c 25.2 KB