Re: [patch 15/24] x86/speculation: Add command line control for indirect branch speculation

From: Peter Zijlstra
Date: Thu Nov 22 2018 - 04:19:31 EST


On Thu, Nov 22, 2018 at 09:14:47AM +0100, Thomas Gleixner wrote:
> On Thu, 22 Nov 2018, Borislav Petkov wrote:
> > > +
> > > + /* Initialize Indirect Branch Prediction Barrier */
> > > + if (boot_cpu_has(X86_FEATURE_IBPB)) {
> > > + setup_force_cpu_cap(X86_FEATURE_USE_IBPB);
> > > + pr_info("Spectre v2 mitigation: Enabling Indirect Branch Prediction Barrier\n");
> > > + }
> >
> > So AFAICT, if coming in here with AUTO, we won't enable IBPB and I
> > *think* AMD wants IBPB enabled. At least the whitepaper says:
> >
> > "IBPB combined with Reptoline software support is the AMD recommended
> > setting for Linux mitigation of Google Project Zero Variant 2
> > (Spectre)."
>
> Ok. That's indeed a step backwards, because we don't do IBPB in KVM
> anymore. I'll fix that tomorrow morning when brain is more awake.
>
> IBPB on context switch is controlled separately anyway now, so that's a
> nobrainer to sort out.
>
> Though I wait for Toms answer whether we really want IBPB on context switch
> for AMD by default.

Right; that retpoline + IBPB case is one that came up earlier when we
talked about this stuff. The IBPB also helps against app2app BTB ASLR
attacks. So even if you have userspace retpoline, you might still want
IBPB.

But yes, this should be relatively straight forward to allow/fix with
the proposed code.