Retpoline Is Still Being Improved Upon For Intel Skylake/Kabylake

Written by Michael Larabel in Linux Kernel on 15 January 2018 at 01:22 PM EST. 5 Comments
While initial support for Retpoline was merged into the Linux 4.15 Git kernel last week and is now being backported to some supported Linux kernel series, there is still additional work ongoing for properly mitigating Spectre v2 on Intel Skylake CPUs and newer.

It turns out Skylake CPUs and newer require additional patches to fully mitigate against the Spectre Variant Two vulnerability. These newer CPUs can fallback to a potentially poisoned indirect branch predictor when a return buffer underflows. Andi Kleen of Intel has sent out a new patch series dubbed "RETPOLINE_UNDERFLOW" that gets enabled by default for Skylake CPUs and newer.

Specifically this RETPOLINE_UNDERFLOW mode gets turned on for Skylake mobile/desktop, Skylake X and Kabylake mobile/desktop hardware at this time.

The set of four patches for Retpoline underflow protection can currently be found on the kernel mailing list. These patches have yet to land in Linux 4.15 or any other kernel branch.

No benchmark results of the impact of this latest addition to Retpoline are yet available. David Woodhouse of Amazon responded that they are looking at using the alternative IBRS (Indirect Branch Restricted Speculation) support on Skylake and use it by default rather than Retpoline.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via

Popular News This Week