Linux Stable Updates Are Dropping The Performance-Pounding STIBP


The Linux stable trees that recently received STIBP “Single Thread Indirect Branch Predictors” after back-porting from Linux 4.20 are seeing the code reverted. This is the change that recently caused major slowdowns in Linux performance for workloads like Python, PHP, Java, code compilation, and other workloads like some games.

After a week of benchmarks showing how STIBP is/was regressing the Linux 4.20 kernel performance big time, which also upset Linus Torvalds with the performance impact not being communicated when the patches were merged, the code is being dropped from the stable branches. This STIBP support for cross-hyperthread Spectre V2 mitigation was back-ported to the supported Linux 4.14 and 4.19 LTS series, but due to the sizable performance regressions set on by default, the code is being reverted.

The reverts are present in Greg KH’s linux-stable-rc tree. The upcoming Linux 4.19.4 and 4.14.83 kernel point releases will have the code reverted and thus the performance regressions restored.

On current Linux 4.20 Git, STIBP remains in place. There is the better approach to STIBP still being reviewed. It’s expected that the new patch series will be ready for merging prior to Linux 4.20.0 shipping in approximately one month’s time, so that should be taken care of for the 4.20 stable release. It remains to be seen if that new code with the better STIBP heuristics will be then back-ported to the current stable/LTS series, but it wouldn’t be too surprising if that’s the case.

It’s great that the STIBP code is getting cleaned up promptly once the significant performance ramifications were brought to light.