When recently carrying out performance benchmarks of Intel Meteor Lake performance on Linux since launch day two years ago, the geo mean came in at 93% the original performance. Finding the performance trending clearly lower with an up-to-date Linux software stack compared to in December 2023 was quite surprising considering the rather nice gains we have seen over time on other Intel/AMD hardware. As noted in that article though, one of the possible explanations there is the Spectre BHI “Branch History Injection” vulnerability and microcode plus Linux kernel mitigations having come out post-launch and affecting Meteor Lake CPUs. Sure enough, follow-up tests looking at the Spectre BHI impact have revealed a measurable cost in a number of workloads for the Core Ultra processor.
Previously I hadn’t looked at the Spectre BHI impact on Meteor Lake due to my never-ending benchmarking list and workload. When the vulnerability and microcode plus kernel mitigations debuted, there were ~12% database performance hits on affected hardware though some kernel improvements made since to help offset some of the costs.
In this article is looking at the Intel Core Ultra “Meteor Lake” performance with the default mitigations compared to running the same kernel with the “spectre_bhi=off” option set to just disable Spectre BHI. All the other CPU security mitigations relevant to Meteor Lake remained in place with this benchmarking just toggling the Spectre BHI mitigation from BHI_DIS_S to off. The BHI_DIS_S indirect predictor control is used to overwrite the branch history to prevent predicted targets of indirect branches executed from CPL0 through CPL2 from being selected based on the branch history of branches executed from CPL3.
The same Intel Core Ultra 7 155H Meteor Lake laptop was used for all of this benchmarking with the only difference between the two runs is booting with spectre_bhi=off.
