From 0455c435af501889de51c79a223883b3c2003b20 Mon Sep 17 00:00:00 2001 From: jaszha03 Date: Wed, 12 Jun 2019 16:01:19 -0500 Subject: vppinfra: conformed spinlocks to use CLIB_PAUSE Modified test-and-set spin locks to call CLIB_PAUSE () when spinning for code consistency. Decreases the memory bandwidth consumed. Type: fix Change-Id: I1cca4f87f44f23f257c7a35466cd2e7767072f51 Signed-off-by: Jason Zhang Reviewed-by: Honnappa Nagarahalli Reviewed-by: Lijian Zhang --- src/vppinfra/elog.c | 3 ++- src/vppinfra/mheap.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'src/vppinfra') diff --git a/src/vppinfra/elog.c b/src/vppinfra/elog.c index 12ac3a596e4..489ccf436d9 100644 --- a/src/vppinfra/elog.c +++ b/src/vppinfra/elog.c @@ -41,13 +41,14 @@ #include #include #include +#include static inline void elog_lock (elog_main_t * em) { if (PREDICT_FALSE (em->lock != 0)) while (clib_atomic_test_and_set (em->lock)) - ; + CLIB_PAUSE (); } static inline void diff --git a/src/vppinfra/mheap.c b/src/vppinfra/mheap.c index ba5bbc9b6e7..2769838d4ba 100644 --- a/src/vppinfra/mheap.c +++ b/src/vppinfra/mheap.c @@ -41,6 +41,7 @@ #include #include #include +#include #ifdef CLIB_UNIX #include @@ -64,7 +65,7 @@ mheap_maybe_lock (void *v) } while (clib_atomic_test_and_set (&h->lock)) - ; + CLIB_PAUSE (); h->owner_cpu = my_cpu; h->recursion_count = 1; -- cgit 1.2.3-korg