From 777e3da31b198ff16b89a1b684904d5a2101960a Mon Sep 17 00:00:00 2001 From: Ian Moffett Date: Thu, 3 Jul 2025 18:22:48 -0400 Subject: kernel: synch: Use md_pause() in spinwait loop Signed-off-by: Ian Moffett --- sys/kern/kern_synch.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sys/kern/kern_synch.c b/sys/kern/kern_synch.c index 0d36d7f..497aff7 100644 --- a/sys/kern/kern_synch.c +++ b/sys/kern/kern_synch.c @@ -35,6 +35,7 @@ #include #include #include +#include #include #include @@ -83,7 +84,9 @@ spinlock_usleep(struct spinlock *lock, size_t usec_max) void spinlock_acquire(struct spinlock *lock) { - while (__atomic_test_and_set(&lock->lock, __ATOMIC_ACQUIRE)); + while (__atomic_test_and_set(&lock->lock, __ATOMIC_ACQUIRE)) { + md_pause(); + } } /* -- cgit v1.2.3