News: 0001370757

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Work Revived On Parallel CPU Bring-Up To Boot Linux Faster On Large Systems/Servers

([Linux Kernel] 106 Minutes Ago Parallel CPU Bring-Up)


Originally posted two years ago were Linux kernel patches for [1]bringing up of CPU cores in parallel to speed-up the Linux boot process . With the growing core counts of servers and even high-end desktops / HEDT platforms, this parallel bring-up can lead to significant time savings at boot. The work, unfortunately, stalled but has now been revised.

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 [2]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 [3]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 [4]v6 patches have now been posted today re-basing the code to 6.2-rc6 state.



[1] https://www.phoronix.com/news/Linux-x86_64-Parallel-CPU-Boot

[2] https://www.phoronix.com/news/Parallel-CPU-Bringup-AMD-Snag

[3] https://lore.kernel.org/lkml/20230201204338.1337562-1-usama.arif@bytedance.com/

[4] https://lore.kernel.org/lkml/20230202215625.3248306-1-usama.arif@bytedance.com/



kozman

Every country has the government it deserves.
-- Joseph De Maistre