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/svm/ssvm.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/svm') diff --git a/src/svm/ssvm.h b/src/svm/ssvm.h index 1c0373f126c..6c679456bff 100644 --- a/src/svm/ssvm.h +++ b/src/svm/ssvm.h @@ -37,6 +37,7 @@ #include #include #include +#include #ifndef MMAP_PAGESIZE #define MMAP_PAGESIZE (clib_mem_get_page_size()) @@ -104,7 +105,7 @@ ssvm_lock (ssvm_shared_header_t * h, u32 my_pid, u32 tag) } while (clib_atomic_test_and_set (&h->lock)) - ; + CLIB_PAUSE (); h->owner_pid = my_pid; h->recursion_count = 1; @@ -115,7 +116,7 @@ always_inline void ssvm_lock_non_recursive (ssvm_shared_header_t * h, u32 tag) { while (clib_atomic_test_and_set (&h->lock)) - ; + CLIB_PAUSE (); h->tag = tag; } -- cgit 1.2.3-korg