diff options
-rw-r--r-- | core/cpu.c | 9 | ||||
-rw-r--r-- | core/init.c | 3 | ||||
-rw-r--r-- | core/lock.c | 3 |
3 files changed, 6 insertions, 9 deletions
@@ -67,11 +67,10 @@ void cpu_relax(void) /* Relax a bit to give sibling threads some breathing space */ smt_low(); smt_very_low(); - asm volatile("nop; nop; nop\n"); - asm volatile("nop; nop; nop\n"); - asm volatile("nop; nop; nop\n"); - asm volatile("nop; nop; nop\n"); - asm volatile("nop; nop; nop\n"); + asm volatile("nop; nop; nop; nop\n"); + asm volatile("nop; nop; nop; nop\n"); + asm volatile("nop; nop; nop; nop\n"); + asm volatile("nop; nop; nop; nop\n"); smt_medium(); } diff --git a/core/init.c b/core/init.c index 99d17f1..a1d6f44 100644 --- a/core/init.c +++ b/core/init.c @@ -673,8 +673,7 @@ void __noreturn __secondary_cpu_entry(void) /* Relax a bit to give the simulator some breathing space */ i = 1000; while (--i) - smt_very_low(); - smt_low(); + cpu_relax(); } } diff --git a/core/lock.c b/core/lock.c index 70fb994..6a8282f 100644 --- a/core/lock.c +++ b/core/lock.c @@ -87,9 +87,8 @@ void lock(struct lock *l) for (;;) { if (try_lock(l)) break; - smt_low(); + cpu_relax(); } - smt_medium(); } void unlock(struct lock *l) |