qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [kvm-unit-tests PATCH v8 02/14] x86/asm: add cpu_relax()


From: Peter Xu
Subject: [Qemu-devel] [kvm-unit-tests PATCH v8 02/14] x86/asm: add cpu_relax()
Date: Mon, 12 Dec 2016 11:08:08 +0800

This will be useful to be put inside loops.

Suggested-by: Andrew Jones <address@hidden>
Reviewed-by: Andrew Jones <address@hidden>
Signed-off-by: Peter Xu <address@hidden>
---
 lib/x86/asm/barrier.h | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/lib/x86/asm/barrier.h b/lib/x86/asm/barrier.h
index 7c108bd..193fb4c 100644
--- a/lib/x86/asm/barrier.h
+++ b/lib/x86/asm/barrier.h
@@ -13,4 +13,15 @@
 #define smp_rmb()      barrier()
 #define smp_wmb()      barrier()
 
+/* REP NOP (PAUSE) is a good thing to insert into busy-wait loops. */
+static inline void rep_nop(void)
+{
+       asm volatile("rep; nop" ::: "memory");
+}
+
+static inline void cpu_relax(void)
+{
+       rep_nop();
+}
+
 #endif
-- 
2.7.4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]