Message ID | 1460050358-25025-8-git-send-email-cota@braap.org |
---|---|
State | New |
Headers | show |
On 04/07/2016 10:32 AM, Emilio G. Cota wrote: > do { > - while (atomic_read(&spin->value)); > + while (atomic_read(&spin->value)) { > + cpu_relax(); > + } Please just merge this with the previous patch. r~
diff --git a/include/qemu/thread.h b/include/qemu/thread.h index 1aa843b..599965e 100644 --- a/include/qemu/thread.h +++ b/include/qemu/thread.h @@ -2,6 +2,7 @@ #define __QEMU_THREAD_H 1 #include <errno.h> +#include "qemu/processor.h" #include "qemu/atomic.h" typedef struct QemuMutex QemuMutex; @@ -74,7 +75,9 @@ static inline void qemu_spin_init(QemuSpin *spin) static inline void qemu_spin_lock(QemuSpin *spin) { do { - while (atomic_read(&spin->value)); + while (atomic_read(&spin->value)) { + cpu_relax(); + } } while (atomic_xchg(&spin->value, true)); }
Signed-off-by: Emilio G. Cota <cota@braap.org> --- include/qemu/thread.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)