Parallel x86_64 CPU Bringup Linux Patches Revised For Quicker Boot Times
This patch series led by longtime kernel developer David Woodhouse is about allowing secondary x86_64 CPU cores to be brought up in parallel. While prior versions of the patch series noted a 15x speed-up, his testing of the new "v4" patches on other hardware is showing a drop from around 500ms down to 100ms.
Woodhouse explained with the patch cover letter, "Doing the INIT/SIPI/SIPI in parallel for all APs and *then* waiting for them shaves about 80% off the AP bringup time on a 96-thread 2-socket Skylake box (EC2 c5.metal) — from about 500ms to 100ms. There are more wins to be had with further parallelisation, but this is the simple part."
Published results so far have been from Intel Xeon servers with this patch series while higher core count AMD EPYC servers and even Ryzen Threadripper should see some nice advantages with this kernel patch series.
The updated patches have fixes to the real mode parallelization code. Hopefully this series will get tidied up and merged in the near future given how today's high-end desktops and servers are seeing ever increasing core counts especially with EPYC "Bergamo" with up to 128 Zen 4C cores per socket on the way. Granted, the Linux kernel boot process still tends to be a fraction of the time it takes POST'ing a modern server but shaving off any measurable amount of boot time can be useful in the data center for those booting servers on-demand as needed like with AWS EC2's metal instances.