From: Joyce Kong Date: Tue, 20 Jul 2021 03:51:19 +0000 (-0500) Subject: test/spinlock: use compile atomics for lcores sync X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=d2794d6719db49ede1370d1be2d56bd96d73c418;p=dpdk.git test/spinlock: use compile atomics for lcores sync Convert rte_atomic usages to compiler atomic built-ins for lcores sync in spinlock testcases. Signed-off-by: Joyce Kong Reviewed-by: Ruifeng Wang Acked-by: Stephen Hemminger --- diff --git a/app/test/test_spinlock.c b/app/test/test_spinlock.c index 054fb43a9f..3f59372300 100644 --- a/app/test/test_spinlock.c +++ b/app/test/test_spinlock.c @@ -17,7 +17,6 @@ #include #include #include -#include #include "test.h" @@ -49,7 +48,7 @@ static rte_spinlock_t sl_tab[RTE_MAX_LCORE]; static rte_spinlock_recursive_t slr; static unsigned count = 0; -static rte_atomic32_t synchro; +static uint32_t synchro; static int test_spinlock_per_core(__rte_unused void *arg) @@ -111,7 +110,7 @@ load_loop_fn(void *func_param) /* wait synchro for workers */ if (lcore != rte_get_main_lcore()) - while (rte_atomic32_read(&synchro) == 0); + rte_wait_until_equal_32(&synchro, 1, __ATOMIC_RELAXED); begin = rte_get_timer_cycles(); while (lcount < MAX_LOOP) { @@ -150,11 +149,11 @@ test_spinlock_perf(void) printf("\nTest with lock on %u cores...\n", rte_lcore_count()); /* Clear synchro and start workers */ - rte_atomic32_set(&synchro, 0); + __atomic_store_n(&synchro, 0, __ATOMIC_RELAXED); rte_eal_mp_remote_launch(load_loop_fn, &lock, SKIP_MAIN); /* start synchro and launch test on main */ - rte_atomic32_set(&synchro, 1); + __atomic_store_n(&synchro, 1, __ATOMIC_RELAXED); load_loop_fn(&lock); rte_eal_mp_wait_lcore();