3 ms·
According to this page retpoline is "insufficient on Skylake and newer CPUs, where even ret may predict from the indirect branch predictor as a fallback; those
by stefanha 9y ago
According to this page retpoline is "insufficient on Skylake and newer CPUs, where even ret may predict from the indirect branch predictor as a fallback; those need IBRS".
https://github.com/marcan/speculation-bugs/blob/master/README.md#bti-linuxgccllvm-retpolines https://github.com/marcan/speculation-bugs/blob/master/READM...
What gives?
- tw04 9y agoThe way I read that, Skylake and newer don't see a performance hit from ibrs. So it's retpoline on older CPUs = no performance hit. Ibrs on newer CPUs + microcode update = no hit. >Requires microcode update on current CPUs. Perf hit vs. retpolines on older CPUs
- stefanha 9y agoYou're missing the point. It says "insufficient on Skylake and newer CPUs". The Google Cloud blog post does not mention that retpolines are insufficient on newer CPUs. That omission is dangerous because readers will believe they are protected by recompiling with retpolines when in fact they aren't. Perhaps the blog post can be updated to clarify the limits of retpolines so people don't get the wrong impression and end up with vulnerable systems.
- boulos 9y agoThat's incorrect (in our opinion). See my comment at https://news.ycombinator.com/item?id=16130871 https://news.ycombinator.com/item?id=16130871
- stefanha 9y agoOkay, the link I posted is just a writeup summarizing publicly available information, some of which may be misleading or incorrect. On the other hand, "opinion" isn't enough. Everything depends on the microarchitecture and only Intel can give assurance on whether retpoline actually works in Skylake or not. I hope they will release information about it.
- boulos 9y agoThat's close, but I think I summarized it more accurately in this sibling comment: https://news.ycombinator.com/item?id=16130871 https://news.ycombinator.com/item?id=16130871