News: 0001642726

  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)

Linux 7.2 Showing Some Unexpected & Nice Performance Gains On AMD EPYC Sorano

([Linux Kernel] 6 Hours Ago Linux 7.2 + AMD EPYC 8005 Sorano)


While the [1]Linux 7.2 merge window doesn't wrap up until this weekend as the feature cut-off for new material, I have already begun some early benchmarks of the code currently staged for this next version of the Linux kernel. Linux 7.2 already was looking quite exciting with [2]cache aware scheduling and other exciting new features while an unexpected surprise in my early testing this week was seeing some local network/socket performance improvements.

The first system I used for evaluating the early performance of the Linux 7.2 kernel was a server with the new AMD EPYC 8005 " [3]Sorano " series, namely the flagship [4]AMD EPYC 8635P 84 cores / 168 thread Zen 5 processor. Linux 7.2 is looking good on EPYC Sorano and I'll have a complete overview of the kernel's performance soon, along with benchmarks on other hardware, but the unexpected surprise for this initial article was finding the localhost network performance to be nicely improved.

Again, stay tuned for more thorough Linux 7.2 benchmarks once the merge window is over while for today is a brief dive into some nice networking performance gains that caught me by surprise.

With comparing Linux 7.1 stable to Linux 7.2 Git as of 21 June, it was a pleasant surprise seeing some unexpected improvements when testing the localhost performance of this EPYC Sorano server using xfr, the modern Rust-based alternative to iperf3:

The TCP performance was improved very nicely. The UDP performance was unchanged over Linux 7.1.

The xfr QUIC test was also showing nice improvements when running on the Linux 7.2 development kernel compared to Linux 7.1 stable. This is great news especially with AMD EPYC 8005 "Sorano" catering to telco, edge computing, cloud storage, and similar environments. It will be interesting to see in the upcoming tests if these improvements carry over similarly on other hardware too.

Outside of xfr, the Sockperf network socket benchmark was showing lower latency too with Linux 7.2.

As a possible explanation for these unexpected improvements in Linux 7.2, when it came to running the stress-ng kernel micro-benchmarks it outed a possible explanation. The poll performance is multiple times faster on Linux 7.2 Git than Linux 7.1 stable.

When going through fs/select.c where poll is implemented within the kernel, for Linux 7.2 there is the adaptation of switching the poll code from free_page() to using the kmalloc() API. That change didn't notice any performance numbers but did indicate using the kmalloc API would provide better scalability, which is potentially what we are seeing here in these benchmarks. This is a generic improvement and nothing AMD or EPYC specific, so we should see gains on other hardware as well.

Also importantly was finding the AMD EPYC 8635P CPU power consumption not any higher on Linux 7.2 with these benchmark wins but in fact slightly lower than Linux 7.1.

In any event, stay tuned for more Linux 7.2 kernel benchmarks once the merge window is over and for now this was the first unexpected surprise so far this week in trying out the new AMD EPYC Sorano on this in-development Linux kernel.



[1] https://www.phoronix.com/search/Linux+7.2

[2] https://www.phoronix.com/news/Linux-7.2-Scheduler

[3] https://www.phoronix.com/search/Sorano

[4] https://www.phoronix.com/review/amd-epyc-8635p



Too much of anything, even love, isn't necessarily a good thing.
-- Kirk, "The Trouble with Tribbles", stardate 4525.6