Skip to content

Commit d1322c4

Browse files
committed
Fix cpu_relax and add RELAX_IS_ISB
Add support for a define RELAX_IS_ISB that adapts cpu_relax() to using an isb instead of a yield().
1 parent f3dc07d commit d1322c4

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

ext/linux/include/lk_atomics.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,9 @@ static inline uint16_t xchg_release16(uint16_t *ptr, uint16_t val) {
251251
static inline void cpu_relax (void) {
252252
#if defined(__x86_64__)
253253
asm volatile ("pause" : : : "memory" );
254-
#elif defined (__arch64__)
254+
#elif defined (__aarch64__) && defined(RELAX_IS_ISB)
255+
asm volatile ("isb" : : : "memory" );
256+
#elif defined (__aarch64__)
255257
asm volatile ("yield" : : : "memory" );
256258
#endif
257259
}

0 commit comments

Comments
 (0)