From: jaszha03 Date: Fri, 27 Sep 2019 16:48:23 +0000 (-0500) Subject: vppinfra: implement CLIB_PAUSE () for aarch64 platforms X-Git-Tag: v20.05-rc0~766 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F56%2F22356%2F2;p=vpp.git 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 --- 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