The Gaming Performance Impact From The Intel JCC Erratum Microcode Update
This morning I provided a lengthy look at the performance impact of Intel's JCC Erratum around the CPU microcode update issued for Skylake through Cascade Lake for mitigating potentially unpredictable behavior when jump instructions cross cache lines. Of the many benchmarks shared this morning in that overview, there wasn't time for any gaming tests prior to publishing. Now with more time passed, here is an initial look at how the Linux gaming performance is impacted by the newly-released Intel CPU microcode for this Jump Conditional Code issue.
While with recent speculative execution vulnerabilities and their mitigations we haven't really seen gaming performance affected, that's not the case with this CPU microcode update coming to address the JCC Erratum issue. As explained in this morning's article, the software update prevents jump instructions from being cached in the Decoded Icache when affected jump instructions cross a 32-byte boundary or end on a 32-byte boundary. This microcode change leads to a greater number of misses from the Decoded ICache and switching back to the legacy decode pipeline. This ends up affecting a wide spectrum of software including games where as the recent speculative execution mitigations mostly affect workloads dealing with a lot of user/kernel-space switching.
While Intel engineers are working on toolchain updates for working around the issue -- and generally working well as shown in the tests earlier -- this unfortunately doesn't do anything to help gamers who are likely to see the microcode update hit their systems very soon. Obviously for the closed-source games out there, it's not an option for the gamers to recompile the games themselves and even so for open-source titles it can be a daunting (and time consuming) task building most games/engines from source. Time will tell whether game makers will be quick to rebuild their software with a mitigated assembler present, but at least for now it basically means the game performance can take a hit with no immediate solution. While this article is testing with Linux games, the impact for Windows gaming is likely to be similar considering it's an Intel microcode update introducing the change in performance.
Obviously for games that are already GPU bottlenecked on the system, the JCC Erratum will have little impact on the overall performance. But as shown in the article today, for many modern Linux OpenGL and Vulkan games there is a measurable difference in frame-rates at least with higher-end hardware. In this article today a Core i9 7960X with NVIDIA GeForce RTX 2080 SUPER was used while other gaming system benchmarks will be coming in the days ahead -- only so much could be prepared for the embargo lift day with single-handedly running all the Phoronix tests. Speaking of which, for those that enjoy the daily and punctual Linux benchmarking that occurs on Phoronix, you can show your support by joining Phoronix Premium or making a PayPal tip.