Re: [PATCH v1] x86/retpoline: Use lfence in the retpoline/RSB filling RSB macros

From: Thomas Gleixner
Date: Sat Jan 13 2018 - 16:36:52 EST


On Sat, 13 Jan 2018, Tom Lendacky wrote:

> On 1/13/2018 8:07 AM, Van De Ven, Arjan wrote:
> >>> The RSB filling macro is applicable to AMD, and, if software is unable to
> >>> verify that lfence is serializing on AMD (possible when running under a
> >>> hypervisor), the generic retpoline support will be used and, so, is also
> >>> applicable to AMD.ÂÂChange the use of pause to lfence.
> >>>
> >>> Signed-off-by: Tom Lendacky <thomas.lendacky@xxxxxxx>
> >>
> >> Conditionally-Acked-by: David Woodhouse <dwmw@xxxxxxxxxxxx>
> >
> >
> > pause is technically the "save me power" instruction
> >
> > how about a compromise where we do a double:
> >
> > pause
> > lfence
> > jmp <up>
> >
> > as sequence... that way if the branch recovery is fast, we get the performance of pause, but if it takes a while, on AMD you get the behavior of lfence?
>
> That should work on AMD.

I zapped the commit from tip for now until this discussion is resolved.

Thanks,

tglx