[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH for-4.{20,19,18,17}] x86/idle: undo use of MONITOR/MWAIT mnemonics



Ack.  Sorry for forgetting this

On Wed, 9 Jul 2025, 10:44 Jan Beulich, <jbeulich@xxxxxxxx> wrote:
While the change is fine on staging, where the toolchain baseline was
moved, we need to remain compatible with older gas on stable branches
for now.

Fixes: fa254938f00a ("x86/idle: Move monitor()/mwait() wrappers into cpu-idle.c")
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>

--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -70,20 +70,20 @@ static always_inline void monitor(
      * The memory clobber is a compiler barrier.  Subseqeunt reads from the
      * monitored cacheline must not be reordered over MONITOR.
      */
-    asm volatile ( "monitor"
+    asm volatile ( ".byte 0x0f, 0x01, 0xc8" /* monitor */
                    :: "a" (addr), "c" (ecx), "d" (edx) : "memory" );
 }

 static always_inline void mwait(unsigned int eax, unsigned int ecx)
 {
-    asm volatile ( "mwait"
+    asm volatile ( ".byte 0x0f, 0x01, 0xc9" /* mwait */
                    :: "a" (eax), "c" (ecx) );
 }

 static always_inline void sti_mwait_cli(unsigned int eax, unsigned int ecx)
 {
     /* STI shadow covers MWAIT. */
-    asm volatile ( "sti; mwait; cli"
+    asm volatile ( "sti; .byte 0x0f, 0x01, 0xc9;" /* mwait */ " cli"
                    :: "a" (eax), "c" (ecx) );
 }


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.