Linux 4.20 Showing Some Performance Slowdowns
Being well past the Linux 4.20 merge window I have moved onto benchmarking more of this development version of the Linux kernel. Unfortunately, there are some clear performance regressions.
This week I got to firing off some Linux 4.20 kernel benchmarks... I started with the AMD Ryzen Threadripper 2990WX and Intel Core i9 7980XE for being the interesting HEDT CPUs in my possession at the moment. On the 7980XE I spotted several performance regressions with this Linux 4.20 development kernel compared to Linux 4.19 and 4.18, so then I fired up the completely separate Intel Core i9 7960X box to carry out the same tests. Sure enough, with that different hardware, there is further confirmation of slowdowns with Linux 4.20.
The common trait of these systems was Ubuntu 18.10 x86_64 and using the Linux 4.18.18, 4.19.1, and 4.20 Git kernel packages provided by the Ubuntu Mainline Kernel PPA. With the differing hardware the intention is not to compare the performance between the systems but in looking at the direction of the Linux kernel performance.
Given the measurable slowdowns with Linux 4.20 in several workloads and being able to reproduce it on the 7960X box, I'll be testing a more diverse selection of hardware over the days ahead to see if it's an Intel specific issue (perhaps a change in their P-State code or other vendor-specific code paths) or what to more specifically isolate the regression. If it comes to it, thanks to the Phoronix Test Suite, it can be automatically bisected as well -- especially with regressing on these high core count systems where kernel builds are a breeze.
As one of the few plus notes, the Vega GPU on the 2990WX box is indicating better Vulkan performance thanks to AMDGPU DRM changes at least for the synthetic VKMark benchmark...
Rodinia is where the Core i9 performance started drawing concern...
And then moving to the Java-based DaCapo benchmarks raised more concern with clear performance setbacks when using the current Linux 4.20 Git kernel while the AMD Threadripper performance was unchanged.
Code compilation speeds also are slower now under the Linux 4.20 kernel on the Intel HEDT boxes.
The PostgreSQL performance was lower across the board.
The synthetic Stress-NG kernel benchmarks were at least showing an improvement in socket activity performance across the three tested systems thus far.
Context switching performance was also improved.
Blender was yet another multi-threading workload slower on the Intel CPUs tested.
With at least some workloads, on the Core i9 7960X and Core i9 7980XE were clear performance regressions using the Linux 4.20 kernel. At least from the initial benchmarks run on Linux 4.20, most of the regressions appear to be with multi-threaded workloads. I'll be firing up Linux 4.20 tests on more hardware over the days ahead and bisecting if the issue isn't resolved upstream sooner than that. But so far from trying on two completely different Core i9 systems, there are some clear slowdowns.
Update: More data showing a performance regression on 4.20.
Update 2: The bisected answer.
This week I got to firing off some Linux 4.20 kernel benchmarks... I started with the AMD Ryzen Threadripper 2990WX and Intel Core i9 7980XE for being the interesting HEDT CPUs in my possession at the moment. On the 7980XE I spotted several performance regressions with this Linux 4.20 development kernel compared to Linux 4.19 and 4.18, so then I fired up the completely separate Intel Core i9 7960X box to carry out the same tests. Sure enough, with that different hardware, there is further confirmation of slowdowns with Linux 4.20.
The common trait of these systems was Ubuntu 18.10 x86_64 and using the Linux 4.18.18, 4.19.1, and 4.20 Git kernel packages provided by the Ubuntu Mainline Kernel PPA. With the differing hardware the intention is not to compare the performance between the systems but in looking at the direction of the Linux kernel performance.
Given the measurable slowdowns with Linux 4.20 in several workloads and being able to reproduce it on the 7960X box, I'll be testing a more diverse selection of hardware over the days ahead to see if it's an Intel specific issue (perhaps a change in their P-State code or other vendor-specific code paths) or what to more specifically isolate the regression. If it comes to it, thanks to the Phoronix Test Suite, it can be automatically bisected as well -- especially with regressing on these high core count systems where kernel builds are a breeze.
As one of the few plus notes, the Vega GPU on the 2990WX box is indicating better Vulkan performance thanks to AMDGPU DRM changes at least for the synthetic VKMark benchmark...
Rodinia is where the Core i9 performance started drawing concern...
And then moving to the Java-based DaCapo benchmarks raised more concern with clear performance setbacks when using the current Linux 4.20 Git kernel while the AMD Threadripper performance was unchanged.
Code compilation speeds also are slower now under the Linux 4.20 kernel on the Intel HEDT boxes.
The PostgreSQL performance was lower across the board.
The synthetic Stress-NG kernel benchmarks were at least showing an improvement in socket activity performance across the three tested systems thus far.
Context switching performance was also improved.
Blender was yet another multi-threading workload slower on the Intel CPUs tested.
With at least some workloads, on the Core i9 7960X and Core i9 7980XE were clear performance regressions using the Linux 4.20 kernel. At least from the initial benchmarks run on Linux 4.20, most of the regressions appear to be with multi-threaded workloads. I'll be firing up Linux 4.20 tests on more hardware over the days ahead and bisecting if the issue isn't resolved upstream sooner than that. But so far from trying on two completely different Core i9 systems, there are some clear slowdowns.
Update: More data showing a performance regression on 4.20.
Update 2: The bisected answer.
24 Comments