Re: [patch RFC 5/5] x86/speculation: Add basic speculation control code

From: David Woodhouse
Date: Wed Jan 10 2018 - 04:28:53 EST


On Wed, 2018-01-10 at 10:22 +0100, Peter Zijlstra wrote:
> On Tue, Jan 09, 2018 at 06:02:53PM -0800, Dave Hansen wrote:
> >
> > On 01/09/2018 05:06 PM, Thomas Gleixner wrote:
> > >
> > > --- a/arch/x86/kernel/cpu/bugs.c
> > > +++ b/arch/x86/kernel/cpu/bugs.c
> > > @@ -79,6 +79,7 @@ enum spectre_v2_mitigation_cmd {
> > > Â SPECTRE_V2_CMD_RETPOLINE,
> > > Â SPECTRE_V2_CMD_RETPOLINE_GENERIC,
> > > Â SPECTRE_V2_CMD_RETPOLINE_AMD,
> > > + SPECTRE_V2_CMD_IBRS,
> > > Â};
> > A few nits on this:
> >
> > IBRS should not default on anywhere, which goes double when retpolines
> > are available.
> >
> > I think I'd also prefer that we separate the IBRS and retpoline enabling
> > so that you can do both if you want.ÂÂThey do nearly the same thing in
> > practice, but I can't convince myself that you never ever need IBRS once
> > retpolines are in place.
> As per:
>
> https://lkml.kernel.org/r/1515460999.4423.104.camel@xxxxxxxxxxxx
>
> IBRS=2 (always on) is preferred for SKL+ over retpoline.
>
> And from what I gather IBRS=1 is never better than retpoline, IBRS=1 is
> both slower and covers less AFAIU (please educate if I'm wrong).
>
> From this point, I would prefer to not even have the IBRS=1 code.
>
> The only question I have is if retpoline works at all on SKL (with ucode
> update); BDW needs the ucode update for retpoline to work because of the
> RSB fallback.

As I understand it, Skylake is never getting the IBRS_ATT (all the
time) feature. That is for future CPUs only.

I don't know why you're calling that 'IBRS=2'; are you getting confused
by Andrea's distro horridness?

Attachment: smime.p7s
Description: S/MIME cryptographic signature