AMD Retpoline Benchmarks From FX To Threadripper & EPYC
With the latest Linux 4.15 kernel there is not only the original Retpoline code but also an AMD-specific minimal thunk that is optimized for AMD's processor and should perform better for this Sepctre Variant Two mitigation. The Retpoline mode can be configured via the spectre_v2= kernel parameter and those interested can find more details via the kernel documentation.
Tests were done on an AMD FX-8370, A10-7870K, Ryzen 7 1800X, Ryzen Threadripper 1950X, and EPYC 7601. The systems were a mix of Debian and Ubuntu. This testing isn't meant for comparing the performance of the different processors but just looking at a range of the Retpoline performance impact on an array of different hardware with different CPUs, storage, RAM, OS, etc.
With each system the Linux 4.15 Git kernel twas tested using no Retpoline, the minimal generic Retpoline, and the minimal AMD-specific Retpoline.
The Threadripper system was more affected by the random read performance than the other AMD boxes with Retpoline.
For the most part, the Retpoline impact on AMD systems with the minimal thunk isn't too bad.
Even in the I/O benchmarks, the impact isn't too severe with the possible exception of the Threadripper box.
In CPU benchmarks, there was little change in the results.
The Linux kernel build speed wasn't impaired by the AMD Retpoline.
Those wishing to dig through more of this data can do so via OpenBenchmarking.org.