Re: [PATCH v3 3/3] x86/delay: Introduce TPAUSE delay

From: Peter Zijlstra
Date: Tue Apr 14 2020 - 14:06:03 EST


On Tue, Apr 14, 2020 at 06:00:21PM +0000, Luck, Tony wrote:
> >> +static inline void __tpause(u32 ecx, u32 edx, u32 eax)
> >> +{
> >> + /* "tpause %ecx, %edx, %eax;" */
> >> + asm volatile(".byte 0x66, 0x0f, 0xae, 0xf1\t\n"
> >> + :
> >> + : "c"(ecx), "d"(edx), "a"(eax));
> >> +}
> >
> > Can we please get a comment stating from what binutils version this
> > opcode has a mnemonic? That way, when we raise the minimum binutils
> > version we can easily grep and find such things.
>
> Or maybe use arch/x86/Kconfig.assembler to set up a CONFIG_AS_TPAUSE?
>
> Then the code can read something like (syntax may need fixing)
>
> #ifdef CONFIG_AS_TPAUSE
> asm volatile("tpause %ecx\n", : : "c"(ecx), "d"(edx), "a"(eax));
> #else
> asm volatile(".byte hex gibberish ...
> #endif

Then we still need a comment to know when we can kill that...