[PATCH v3 00/11] Optimization to improve CPU online/offline on Powerpc
From: Srikar Dronamraju <hidden>
Date: 2020-10-07 18:38:43
Changelog v2->v3: v1 link: https://lore.kernel.org/linuxppc-dev/20200921095653.9701-1-srikar@linux.vnet.ibm.com/t/#u Use GFP_ATOMIC instead of GFP_KERNEL since allocations need to atomic at the time of CPU HotPlug. Reported by Qian Cai [off-list ref] Only changes in Patch 09 and Patch 11. Changelog v1->v2: v1 link: https://lore.kernel.org/linuxppc-dev/20200727075532.30058-1-srikar@linux.vnet.ibm.com/t/#u Added five more patches on top of Seven. Rebased to 19th Sept 2020 powerpc/next (based on v5.9-rc2) Here are some optimizations and fixes to make CPU online/offline faster and hence result in faster bootup. Its based on top of my v5 coregroup support patchset. https://lore.kernel.org/linuxppc-dev/20200810071834.92514-1-srikar@linux.vnet.ibm.com/t/#u Anton reported that his 4096 cpu (1024 cores in a socket) was taking too long to boot. He also analyzed that most of the time was being spent on updating cpu_core_mask. The first two patches should solve Anton's immediate problem. On the unofficial patches, Anton reported that the boot time came from 30 mins to 6 seconds. (Basically a high core count in a single socket configuration). Satheesh also reported similar numbers. The rest are cleanups/optimizations. Since cpu_core_mask is an exported symbol for a long duration, lets retain as a snapshot of cpumask_of_node. $ lscpu Architecture: ppc64le Byte Order: Little Endian CPU(s): 1024 On-line CPU(s) list: 0-1023 Thread(s) per core: 8 Core(s) per socket: 8 Socket(s): 16