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

From: Luck, Tony
Date: Tue Apr 14 2020 - 14:00:35 EST


>> +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

-Tony