summaryrefslogtreecommitdiff
path: root/src/arch/i386/include/arch/smp/spinlock.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/i386/include/arch/smp/spinlock.h')
-rw-r--r--src/arch/i386/include/arch/smp/spinlock.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/arch/i386/include/arch/smp/spinlock.h b/src/arch/i386/include/arch/smp/spinlock.h
index d0cc11c6a7..65ad8d0673 100644
--- a/src/arch/i386/include/arch/smp/spinlock.h
+++ b/src/arch/i386/include/arch/smp/spinlock.h
@@ -54,4 +54,10 @@ static inline void spin_unlock(spinlock_t *lock)
:"=m" (lock->lock) : : "memory");
}
+/* REP NOP (PAUSE) is a good thing to insert into busy-wait loops. */
+static inline void cpu_relax(void)
+{
+ __asm__ __volatile__("rep;nop": : :"memory");
+}
+
#endif /* ARCH_SMP_SPINLOCK_H */