Work Revived On Parallel CPU Bring-Up To Boot Linux Faster On Large Systems/Servers
The work was pursued by David Woodhouse of Amazon for the parallel bring-up of secondary CPU cores for x86_64 processors. With the initial work this meant a 15x speed-up for the boot time on a high-end Skylake server at the time. With those patches then in early 2022 it was discovered the parallel CPU bring-up was having issues with older AMD CPUs. Since then there wasn't any major activity to report on the patches...
In the past few days though TikTok-owner Bytedance expressed interest in these patches for speeding up the Linux boot process on their high core count servers. An updated version of those patches was published this week now by a Bytedance engineer, though besides re-basing it to the Linux 6.1 upstream state it's also disabling the behavior for all AMD CPUs. Due to the boot issues encountered last year with some AMD processors, for now this time-savings feature is being outright disabled for all AMD processors. Considering AMD EPYC "Genoa" goes up to 96 cores per socket and with Bergamo will hit 128 cores per socket, hopefully this AMD issue can be sorted out soon since these patches will provide great savings there.
With today's large core count processors, there can be Linux boot-time savings by bringing up the secondary CPU cores in parallel rather than sequentially as done today with the kernel.
With the revised patches this week, the INIT/SIPI/SIPI in parallel for a 128 CPU core configuration system it dropped the boot time from ~700ms to around 100ms.
The latest x86_64 CPU parallel bring-up patches can be found on the kernel mailing list. Hopefully this time the work won't fizzle out and it will be worked into something upstreamable as well as being able to sort out the prior AMD problems for speeding up the boot process on today's large core count systems and servers.
Update: The v6 patches have now been posted today re-basing the code to 6.2-rc6 state.