Since my last v4 [1], the code has undergone great changes. The paca[] array has been reorganized and indexed by paca_ptrs[], which dramatically decreases the memory consumption even if there are many unpresent cpus in the middle.
However, reordering the logical cpu numbers can further decrease the size of paca_ptrs[] in the kdump case. So I keep [1/3], which rotate-shifts the cpu's sequence number in the device tree to obtain the logical cpu id. Patch [2-3/3] make efforts to decrease the nr_cpus to be less than or equal to two. [1]: https://lore.kernel.org/linuxppc-dev/1520829790-14029-1-git-send-email-kernelf...@gmail.com/ Cc: Michael Ellerman <m...@ellerman.id.au> Cc: Nicholas Piggin <npig...@gmail.com> Cc: Christophe Leroy <christophe.le...@csgroup.eu> Cc: Mahesh Salgaonkar <mah...@linux.ibm.com> Cc: Wen Xiong <wenxi...@linux.ibm.com> Cc: Baoquan He <b...@redhat.com> Cc: Ming Lei <ming....@redhat.com> Cc: ke...@lists.infradead.org To: linuxppc-dev@lists.ozlabs.org v5 -> v6: assign nr_cpu_ids by set_nr_cpu_ids() to tackle with the issue if nr_cpu_ids is configured as a constant Pingfan Liu (3): powerpc/setup: Loosen the mapping between cpu logical id and its seq in dt powerpc/setup: Handle the case when boot_cpuid greater than nr_cpus powerpc/setup: alloc extra paca_ptrs to hold boot_cpuid arch/powerpc/kernel/paca.c | 10 +-- arch/powerpc/kernel/prom.c | 28 +++++--- arch/powerpc/kernel/setup-common.c | 106 ++++++++++++++++++++++++----- 3 files changed, 113 insertions(+), 31 deletions(-) -- 2.31.1