The Spectre/Meltdown Performance Impact On Linux 4.20, Decimating Benchmarks With New STIBP Overhead
As outlined yesterday, significant slowdowns with the Linux 4.20 kernel turned out to be due to the addition of the kernel-side bits for STIBP (Single Thread Indirect Branch Predictors) for cross-HyperThread Spectre Variant Two mitigation. This has incurred significant performance penalties with the STIBP support in its current state with Linux 4.20 Git and is enabled by default at least for Intel systems with up-to-date microcode. Here are some follow-up benchmarks looking at the performance hit with the Linux 4.20 development kernel as well as the overall Spectre and Meltdown mitigation impact on this latest version of the Linux kernel.
Some users have said AMD also needs STIBP, but at least with Linux 4.20 Git and the AMD systems I have tested with their up-to-date BIOS/microcode, that hasn't appeared to be the case. Most of the AMD STIBP references date back to January when Spectre/Meltdown first came to light. We'll see in the week ahead if there is any comment from AMD but at this time seems to be affecting up-to-date Intel systems with the Linux 4.20 kernel.
One of the most common request since yesterday's article when bisecting it down to STIBP as the cause for the Linux 4.20 performance drop, many Phoronix readers were curious to know the overall performance cost of all the Spectre / Meltdown mitigations that have come about so far this year. I happened to do some tests on the latest Linux 4.20 Git both in its default mitigated state "KPTI + __user pointer sanitization + Full generic retpoline IBPB IBRS_FW STIBP RSB filling + SSB disabled via prctl and seccomp + PTE Inversion; VMX: conditional cache flushes SMT vulnerable" and then again when disabling the mitigations permitted at run-time.
The comparison of the overall Spectre/Meltdown cost on Linux 4.20 was done with the Intel Core i9 7980XE.
Following that comparison are some tests of the dual Intel Xeon Gold server with Linux 4.19, Linux 4.20, and then Linux 4.20 with no mitigations enabled. Those results are compared to the current AMD EPYC performance for seeing how the introduction of STIBP affects that positioning.
All of these benchmarks were facilitated in a fully-automated and reproducible manner using the open-source Phoronix Test Suite benchmarking software.