Re: [PATCH v2 14/14] bpf,x86: Respect X86_FEATURE_RETPOLINE*

From: Josh Poimboeuf
Date: Wed Oct 20 2021 - 20:18:17 EST


On Wed, Oct 20, 2021 at 05:07:53PM -0700, Alexei Starovoitov wrote:
> On Wed, Oct 20, 2021 at 12:44:56PM +0200, Peter Zijlstra wrote:
> > +
> > + if (cpu_feature_enabled(X86_FEATURE_RETPOLINE_AMD)) {
> > + EMIT_LFENCE();
> > + EMIT2(0xFF, 0xE0 + reg);
> > + } else if (cpu_feature_enabled(X86_FEATURE_RETPOLINE)) {
> > + emit_jump(&prog, reg_thunk[reg], ip);
> > + } else
>
> One more question.
> What's a deal with AMD? I thought the retpoline is effective on it as well.
> lfence is an optimization or retpoline turned out to be not enough
> in some cases?

Yes, it's basically an optimization. AMD recommends it presumably
because it's quite a bit faster than a retpoline.

According to AMD it shrinks the speculative execution window enough so
that Spectre v2 isn't a threat.

--
Josh