From 18512b002da5da312aa2638b67a8ec4bb2c10236 Mon Sep 17 00:00:00 2001 From: jaszha03 Date: Fri, 27 Sep 2019 11:48:23 -0500 Subject: [PATCH] vppinfra: implement CLIB_PAUSE () for aarch64 platforms Define CLIB_PAUSE () to generate the "yield" instruction. No significant performance changes were observed for clib_spinlock_t and clib_rwlock_t. Type: feature Change-Id: I59eb996e61c7a16007517e57e6996567302c1657 Signed-off-by: Jason Zhang Reviewed-by: Lijian Zhang --- src/vppinfra/lock.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/vppinfra/lock.h b/src/vppinfra/lock.h index 49e849b1bdd..3cfe11cba17 100644 --- a/src/vppinfra/lock.h +++ b/src/vppinfra/lock.h @@ -21,6 +21,8 @@ #if __x86_64__ #define CLIB_PAUSE() __builtin_ia32_pause () +#elif defined (__aarch64__) || defined (__arm__) +#define CLIB_PAUSE() __asm__ ("yield") #else #define CLIB_PAUSE() #endif -- 2.16.6