From 19515acddc343d1680d4a5d27f39456999498591 Mon Sep 17 00:00:00 2001 From: Sirshak Das Date: Wed, 7 Nov 2018 18:46:42 -0600 Subject: Use acquire/release ordering when accessing svm_fifo shared variable cursize Improves TCP iperf3 performance by ~3% on AArch64. Change-Id: I1e51bd8403ba45ec6af4c2f96b95e884c1ae0d67 Signed-off-by: Sirshak Das Reviewed-by: Honnappa Nagarahalli Reviewed-by: Ola Liljedahl --- src/vppinfra/atomics.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/vppinfra/atomics.h') diff --git a/src/vppinfra/atomics.h b/src/vppinfra/atomics.h index 420ae837fc0..8084bdc77d4 100644 --- a/src/vppinfra/atomics.h +++ b/src/vppinfra/atomics.h @@ -40,7 +40,11 @@ #define clib_atomic_test_and_set(a) __sync_lock_test_and_set(a, 1) #define clib_atomic_release(a) __sync_lock_release(a) +#define clib_atomic_load_acq_n(a) __atomic_load_n((a), __ATOMIC_ACQUIRE) #define clib_atomic_store_rel_n(a, b) __atomic_store_n ((a), (b), __ATOMIC_RELEASE) #define clib_atomic_swap_acq_n(a, b) __atomic_exchange_n ((a), (b), __ATOMIC_ACQUIRE) +#define clib_atomic_fetch_add_rel(a, b) __atomic_fetch_add((a), (b), __ATOMIC_RELEASE) +#define clib_atomic_fetch_sub_rel(a, b) __atomic_fetch_sub((a), (b), __ATOMIC_RELEASE) + #endif /* included_clib_atomics_h */ -- cgit 1.2.3-korg