Messages in this thread | | | From | Dan Williams <> | Date | Fri, 12 Jan 2018 17:53:34 -0800 | Subject | Re: [PATCH v1] x86/retpoline: Use lfence in the retpoline/RSB filling RSB macros |
| |
On Fri, Jan 12, 2018 at 5:07 PM, Tom Lendacky <thomas.lendacky@amd.com> wrote: > The pause instruction is currently used in the retpoline and RSB filling > macros as a speculation trap. The use of pause was originally suggested > because it showed a very, very small difference in the amount of > cycles/time used to execute the retpoline as compared to lfence. On AMD, > the pause instruction is not a serializing instruction, so the pause/jmp > loop will use excess power as it is speculated over waiting for return > to mispredict to the correct target. > > 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.
Should we use ASM_IFENCE for this?
| |