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.ca...@amazon.co.uk

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.

Reply via email to