From 5bd3c386b276482e423108676b0c3b12b4cfb2e6 Mon Sep 17 00:00:00 2001 From: Joyce Kong Date: Wed, 13 Oct 2021 13:54:00 -0500 Subject: [PATCH] examples/bbdev: use compiler atomics for flag sync Convert rte_atomic usages to compiler atomic built-ins for global_exit_flag sync. Signed-off-by: Joyce Kong Reviewed-by: Ruifeng Wang --- examples/bbdev_app/main.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/examples/bbdev_app/main.c b/examples/bbdev_app/main.c index adbd408083..95fd0b8144 100644 --- a/examples/bbdev_app/main.c +++ b/examples/bbdev_app/main.c @@ -18,7 +18,6 @@ #include #include -#include #include #include #include @@ -167,7 +166,7 @@ static const struct app_config_params def_app_config = { .num_dec_cores = 1, }; -static rte_atomic16_t global_exit_flag; +static uint16_t global_exit_flag; /* display usage */ static inline void @@ -279,7 +278,7 @@ static void signal_handler(int signum) { printf("\nSignal %d received\n", signum); - rte_atomic16_set(&global_exit_flag, 1); + __atomic_store_n(&global_exit_flag, 1, __ATOMIC_RELAXED); } static void @@ -323,7 +322,7 @@ check_port_link_status(uint16_t port_id) fflush(stdout); for (count = 0; count <= MAX_CHECK_TIME && - !rte_atomic16_read(&global_exit_flag); count++) { + !__atomic_load_n(&global_exit_flag, __ATOMIC_RELAXED); count++) { memset(&link, 0, sizeof(link)); link_get_err = rte_eth_link_get_nowait(port_id, &link); @@ -677,7 +676,7 @@ stats_loop(void *arg) { struct stats_lcore_params *stats_lcore = arg; - while (!rte_atomic16_read(&global_exit_flag)) { + while (!__atomic_load_n(&global_exit_flag, __ATOMIC_RELAXED)) { print_stats(stats_lcore); rte_delay_ms(500); } @@ -923,7 +922,7 @@ processing_loop(void *arg) const bool run_decoder = (lcore_conf->core_type & (1 << RTE_BBDEV_OP_TURBO_DEC)); - while (!rte_atomic16_read(&global_exit_flag)) { + while (!__atomic_load_n(&global_exit_flag, __ATOMIC_RELAXED)) { if (run_encoder) run_encoding(lcore_conf); if (run_decoder) @@ -1057,7 +1056,7 @@ main(int argc, char **argv) .align = __alignof__(struct rte_mbuf *), }; - rte_atomic16_init(&global_exit_flag); + __atomic_store_n(&global_exit_flag, 0, __ATOMIC_RELAXED); sigret = signal(SIGTERM, signal_handler); if (sigret == SIG_ERR) -- 2.20.1