From patchwork Wed Oct 13 18:54:00 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dharmik Thakkar X-Patchwork-Id: 101477 X-Patchwork-Delegate: david.marchand@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 55221A0C55; Wed, 13 Oct 2021 20:54:28 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A705C41204; Wed, 13 Oct 2021 20:54:23 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mails.dpdk.org (Postfix) with ESMTP id 4CB0141186 for ; Wed, 13 Oct 2021 20:54:21 +0200 (CEST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B3BE811D4; Wed, 13 Oct 2021 11:54:20 -0700 (PDT) Received: from 2p2660v4-1.austin.arm.com (2p2660v4-1.austin.arm.com [10.118.13.211]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id ACF7C3F70D; Wed, 13 Oct 2021 11:54:20 -0700 (PDT) From: Dharmik Thakkar To: Nicolas Chautru Cc: dev@dpdk.org, nd@arm.com, honnappa.nagarahalli@arm.com, ruifeng.wang@arm.com, joyce.kong@arm.com, dharmik.thakkar@arm.com Date: Wed, 13 Oct 2021 13:54:00 -0500 Message-Id: <20211013185407.2841183-2-dharmik.thakkar@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211013185407.2841183-1-dharmik.thakkar@arm.com> References: <20210823054952.15001-1-joyce.kong@arm.com> <20211013185407.2841183-1-dharmik.thakkar@arm.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v3 1/8] examples/bbdev_app: use compiler atomics for flag sync X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Joyce Kong 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 adbd40808396..95fd0b814494 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) From patchwork Wed Oct 13 18:54:01 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dharmik Thakkar X-Patchwork-Id: 101478 X-Patchwork-Delegate: david.marchand@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 67706A0C55; Wed, 13 Oct 2021 20:54:34 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C45504121C; Wed, 13 Oct 2021 20:54:24 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mails.dpdk.org (Postfix) with ESMTP id 56E31411FA for ; Wed, 13 Oct 2021 20:54:21 +0200 (CEST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id CF2DF1480; Wed, 13 Oct 2021 11:54:20 -0700 (PDT) Received: from 2p2660v4-1.austin.arm.com (2p2660v4-1.austin.arm.com [10.118.13.211]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id C89623F70D; Wed, 13 Oct 2021 11:54:20 -0700 (PDT) From: Dharmik Thakkar To: Anatoly Burakov Cc: dev@dpdk.org, nd@arm.com, honnappa.nagarahalli@arm.com, ruifeng.wang@arm.com, joyce.kong@arm.com, dharmik.thakkar@arm.com Date: Wed, 13 Oct 2021 13:54:01 -0500 Message-Id: <20211013185407.2841183-3-dharmik.thakkar@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211013185407.2841183-1-dharmik.thakkar@arm.com> References: <20210823054952.15001-1-joyce.kong@arm.com> <20211013185407.2841183-1-dharmik.thakkar@arm.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v3 2/8] examples/multi_process: use compiler atomics for sync X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Joyce Kong Convert rte_atomic32_test_and_set usage to compiler atomic CAS operation for display_stats sync. Signed-off-by: Joyce Kong Reviewed-by: Ruifeng Wang --- examples/multi_process/client_server_mp/mp_server/main.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/examples/multi_process/client_server_mp/mp_server/main.c b/examples/multi_process/client_server_mp/mp_server/main.c index 9bcee460fd24..b4761ebc7b05 100644 --- a/examples/multi_process/client_server_mp/mp_server/main.c +++ b/examples/multi_process/client_server_mp/mp_server/main.c @@ -20,7 +20,6 @@ #include #include #include -#include #include #include #include @@ -158,10 +157,12 @@ static int sleep_lcore(__rte_unused void *dummy) { /* Used to pick a display thread - static, so zero-initialised */ - static rte_atomic32_t display_stats; + static uint32_t display_stats; + uint32_t status = 0; /* Only one core should display stats */ - if (rte_atomic32_test_and_set(&display_stats)) { + if (__atomic_compare_exchange_n(&display_stats, &status, 1, 0, + __ATOMIC_RELAXED, __ATOMIC_RELAXED)) { const unsigned sleeptime = 1; printf("Core %u displaying statistics\n", rte_lcore_id()); From patchwork Wed Oct 13 18:54:02 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dharmik Thakkar X-Patchwork-Id: 101479 X-Patchwork-Delegate: david.marchand@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id D0560A0C55; Wed, 13 Oct 2021 20:54:40 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CA21A41233; Wed, 13 Oct 2021 20:54:25 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mails.dpdk.org (Postfix) with ESMTP id 7A510411FC for ; Wed, 13 Oct 2021 20:54:21 +0200 (CEST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id EB05B1515; Wed, 13 Oct 2021 11:54:20 -0700 (PDT) Received: from 2p2660v4-1.austin.arm.com (2p2660v4-1.austin.arm.com [10.118.13.211]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id E3E163F70D; Wed, 13 Oct 2021 11:54:20 -0700 (PDT) From: Dharmik Thakkar To: Ferruh Yigit Cc: dev@dpdk.org, nd@arm.com, honnappa.nagarahalli@arm.com, ruifeng.wang@arm.com, joyce.kong@arm.com, dharmik.thakkar@arm.com Date: Wed, 13 Oct 2021 13:54:02 -0500 Message-Id: <20211013185407.2841183-4-dharmik.thakkar@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211013185407.2841183-1-dharmik.thakkar@arm.com> References: <20210823054952.15001-1-joyce.kong@arm.com> <20211013185407.2841183-1-dharmik.thakkar@arm.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v3 3/8] examples/kni: use compiler atomics for status sync X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Joyce Kong Convert rte_atomic usages to compiler atomic builit-ins for kni_stop and kni_pause sync. Signed-off-by: Joyce Kong Reviewed-by: Ruifeng Wang --- examples/kni/main.c | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/examples/kni/main.c b/examples/kni/main.c index 2a993a0ca460..4d049d844e0b 100644 --- a/examples/kni/main.c +++ b/examples/kni/main.c @@ -27,7 +27,6 @@ #include #include #include -#include #include #include #include @@ -131,8 +130,8 @@ static int kni_change_mtu(uint16_t port_id, unsigned int new_mtu); static int kni_config_network_interface(uint16_t port_id, uint8_t if_up); static int kni_config_mac_address(uint16_t port_id, uint8_t mac_addr[]); -static rte_atomic32_t kni_stop = RTE_ATOMIC32_INIT(0); -static rte_atomic32_t kni_pause = RTE_ATOMIC32_INIT(0); +static uint32_t kni_stop; +static uint32_t kni_pause; /* Print out statistics on packets handled */ static void @@ -185,7 +184,7 @@ signal_handler(int signum) if (signum == SIGRTMIN || signum == SIGINT || signum == SIGTERM) { printf("\nSIGRTMIN/SIGINT/SIGTERM received. " "KNI processing stopping.\n"); - rte_atomic32_inc(&kni_stop); + __atomic_fetch_add(&kni_stop, 1, __ATOMIC_RELAXED); return; } } @@ -311,8 +310,8 @@ main_loop(__rte_unused void *arg) kni_port_params_array[i]->lcore_rx, kni_port_params_array[i]->port_id); while (1) { - f_stop = rte_atomic32_read(&kni_stop); - f_pause = rte_atomic32_read(&kni_pause); + f_stop = __atomic_load_n(&kni_stop, __ATOMIC_RELAXED); + f_pause = __atomic_load_n(&kni_pause, __ATOMIC_RELAXED); if (f_stop) break; if (f_pause) @@ -324,8 +323,8 @@ main_loop(__rte_unused void *arg) kni_port_params_array[i]->lcore_tx, kni_port_params_array[i]->port_id); while (1) { - f_stop = rte_atomic32_read(&kni_stop); - f_pause = rte_atomic32_read(&kni_pause); + f_stop = __atomic_load_n(&kni_stop, __ATOMIC_RELAXED); + f_pause = __atomic_load_n(&kni_pause, __ATOMIC_RELAXED); if (f_stop) break; if (f_pause) @@ -856,9 +855,9 @@ kni_change_mtu(uint16_t port_id, unsigned int new_mtu) { int ret; - rte_atomic32_inc(&kni_pause); + __atomic_fetch_add(&kni_pause, 1, __ATOMIC_RELAXED); ret = kni_change_mtu_(port_id, new_mtu); - rte_atomic32_dec(&kni_pause); + __atomic_fetch_sub(&kni_pause, 1, __ATOMIC_RELAXED); return ret; } @@ -877,14 +876,14 @@ kni_config_network_interface(uint16_t port_id, uint8_t if_up) RTE_LOG(INFO, APP, "Configure network interface of %d %s\n", port_id, if_up ? "up" : "down"); - rte_atomic32_inc(&kni_pause); + __atomic_fetch_add(&kni_pause, 1, __ATOMIC_RELAXED); if (if_up != 0) { /* Configure network interface up */ ret = rte_eth_dev_stop(port_id); if (ret != 0) { RTE_LOG(ERR, APP, "Failed to stop port %d: %s\n", port_id, rte_strerror(-ret)); - rte_atomic32_dec(&kni_pause); + __atomic_fetch_sub(&kni_pause, 1, __ATOMIC_RELAXED); return ret; } ret = rte_eth_dev_start(port_id); @@ -893,12 +892,12 @@ kni_config_network_interface(uint16_t port_id, uint8_t if_up) if (ret != 0) { RTE_LOG(ERR, APP, "Failed to stop port %d: %s\n", port_id, rte_strerror(-ret)); - rte_atomic32_dec(&kni_pause); + __atomic_fetch_sub(&kni_pause, 1, __ATOMIC_RELAXED); return ret; } } - rte_atomic32_dec(&kni_pause); + __atomic_fetch_sub(&kni_pause, 1, __ATOMIC_RELAXED); if (ret < 0) RTE_LOG(ERR, APP, "Failed to start port %d\n", port_id); From patchwork Wed Oct 13 18:54:03 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dharmik Thakkar X-Patchwork-Id: 101480 X-Patchwork-Delegate: david.marchand@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7C3F5A0C55; Wed, 13 Oct 2021 20:54:48 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D94074123B; Wed, 13 Oct 2021 20:54:26 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mails.dpdk.org (Postfix) with ESMTP id 8FFEE41173 for ; Wed, 13 Oct 2021 20:54:21 +0200 (CEST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 20A6A1516; Wed, 13 Oct 2021 11:54:21 -0700 (PDT) Received: from 2p2660v4-1.austin.arm.com (2p2660v4-1.austin.arm.com [10.118.13.211]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 17F663F70D; Wed, 13 Oct 2021 11:54:21 -0700 (PDT) From: Dharmik Thakkar To: John McNamara Cc: dev@dpdk.org, nd@arm.com, honnappa.nagarahalli@arm.com, ruifeng.wang@arm.com, joyce.kong@arm.com, dharmik.thakkar@arm.com Date: Wed, 13 Oct 2021 13:54:03 -0500 Message-Id: <20211013185407.2841183-5-dharmik.thakkar@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211013185407.2841183-1-dharmik.thakkar@arm.com> References: <20210823054952.15001-1-joyce.kong@arm.com> <20211013185407.2841183-1-dharmik.thakkar@arm.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v3 4/8] examples/performance-thread: use compiler atomics for sync X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Joyce Kong Convert rte_atomic usages to compiler atomic built-ins for thread sync. Signed-off-by: Joyce Kong Reviewed-by: Ruifeng Wang --- examples/performance-thread/common/lthread.c | 10 +++--- .../performance-thread/common/lthread_diag.h | 10 +++--- .../performance-thread/common/lthread_int.h | 1 - .../performance-thread/common/lthread_mutex.c | 26 +++++++------- .../performance-thread/common/lthread_mutex.h | 2 +- .../performance-thread/common/lthread_sched.c | 34 ++++++++----------- .../performance-thread/common/lthread_tls.c | 5 +-- .../performance-thread/l3fwd-thread/main.c | 22 +++++------- 8 files changed, 53 insertions(+), 57 deletions(-) diff --git a/examples/performance-thread/common/lthread.c b/examples/performance-thread/common/lthread.c index 3f1f48db433e..98123f34f840 100644 --- a/examples/performance-thread/common/lthread.c +++ b/examples/performance-thread/common/lthread.c @@ -357,9 +357,10 @@ void lthread_exit(void *ptr) * - if exit before join then we suspend and resume on join * - if join before exit then we resume the joining thread */ + uint64_t join_initial = LT_JOIN_INITIAL; if ((lt->join == LT_JOIN_INITIAL) - && rte_atomic64_cmpset(<->join, LT_JOIN_INITIAL, - LT_JOIN_EXITING)) { + && __atomic_compare_exchange_n(<->join, &join_initial, + LT_JOIN_EXITING, 0, __ATOMIC_RELAXED, __ATOMIC_RELAXED)) { DIAG_EVENT(lt, LT_DIAG_LTHREAD_EXIT, 1, 0); _suspend(); @@ -415,9 +416,10 @@ int lthread_join(struct lthread *lt, void **ptr) * - if join before exit we suspend and will resume when exit is called * - if exit before join we resume the exiting thread */ + uint64_t join_initial = LT_JOIN_INITIAL; if ((lt->join == LT_JOIN_INITIAL) - && rte_atomic64_cmpset(<->join, LT_JOIN_INITIAL, - LT_JOIN_THREAD_SET)) { + && __atomic_compare_exchange_n(<->join, &join_initial, + LT_JOIN_THREAD_SET, 0, __ATOMIC_RELAXED, __ATOMIC_RELAXED)) { DIAG_EVENT(current, LT_DIAG_LTHREAD_JOIN, lt, 1); _suspend(); diff --git a/examples/performance-thread/common/lthread_diag.h b/examples/performance-thread/common/lthread_diag.h index e876dda6da3a..7ee89eef388d 100644 --- a/examples/performance-thread/common/lthread_diag.h +++ b/examples/performance-thread/common/lthread_diag.h @@ -78,11 +78,11 @@ extern uint64_t diag_mask; } \ } while (0) -#define DIAG_COUNT_DEFINE(x) rte_atomic64_t count_##x -#define DIAG_COUNT_INIT(o, x) rte_atomic64_init(&((o)->count_##x)) -#define DIAG_COUNT_INC(o, x) rte_atomic64_inc(&((o)->count_##x)) -#define DIAG_COUNT_DEC(o, x) rte_atomic64_dec(&((o)->count_##x)) -#define DIAG_COUNT(o, x) rte_atomic64_read(&((o)->count_##x)) +#define DIAG_COUNT_DEFINE(x) uint64_t count_##x +#define DIAG_COUNT_INIT(o, x) __atomic_store_n(&((o)->count_##x), 0, __ATOMIC_RELAXED) +#define DIAG_COUNT_INC(o, x) __atomic_fetch_add(&((o)->count_##x), 1, __ATOMIC_RELAXED) +#define DIAG_COUNT_DEC(o, x) __atomic_fetch_sub(&((o)->count_##x), 1, __ATOMIC_RELAXED) +#define DIAG_COUNT(o, x) __atomic_load_n(&((o)->count_##x), __ATOMIC_RELAXED) #define DIAG_USED diff --git a/examples/performance-thread/common/lthread_int.h b/examples/performance-thread/common/lthread_int.h index a352f13b7568..d010126f1681 100644 --- a/examples/performance-thread/common/lthread_int.h +++ b/examples/performance-thread/common/lthread_int.h @@ -21,7 +21,6 @@ extern "C" { #include #include #include -#include #include #include diff --git a/examples/performance-thread/common/lthread_mutex.c b/examples/performance-thread/common/lthread_mutex.c index 01da6cad4f61..061fc5c19a6b 100644 --- a/examples/performance-thread/common/lthread_mutex.c +++ b/examples/performance-thread/common/lthread_mutex.c @@ -60,7 +60,7 @@ lthread_mutex_init(char *name, struct lthread_mutex **mutex, m->root_sched = THIS_SCHED; m->owner = NULL; - rte_atomic64_init(&m->count); + __atomic_store_n(&m->count, 0, __ATOMIC_RELAXED); DIAG_CREATE_EVENT(m, LT_DIAG_MUTEX_CREATE); /* success */ @@ -115,10 +115,11 @@ int lthread_mutex_lock(struct lthread_mutex *m) } for (;;) { - rte_atomic64_inc(&m->count); + __atomic_fetch_add(&m->count, 1, __ATOMIC_RELAXED); do { - if (rte_atomic64_cmpset - ((uint64_t *) &m->owner, 0, (uint64_t) lt)) { + uint64_t lt_init = 0; + if (__atomic_compare_exchange_n((uint64_t *) &m->owner, <_init, + (uint64_t) lt, 0, __ATOMIC_RELAXED, __ATOMIC_RELAXED)) { /* happy days, we got the lock */ DIAG_EVENT(m, LT_DIAG_MUTEX_LOCK, m, 0); return 0; @@ -126,7 +127,7 @@ int lthread_mutex_lock(struct lthread_mutex *m) /* spin due to race with unlock when * nothing was blocked */ - } while ((rte_atomic64_read(&m->count) == 1) && + } while ((__atomic_load_n(&m->count, __ATOMIC_RELAXED) == 1) && (m->owner == NULL)); /* queue the current thread in the blocked queue @@ -160,16 +161,17 @@ int lthread_mutex_trylock(struct lthread_mutex *m) return POSIX_ERRNO(EDEADLK); } - rte_atomic64_inc(&m->count); - if (rte_atomic64_cmpset - ((uint64_t *) &m->owner, (uint64_t) NULL, (uint64_t) lt)) { + __atomic_fetch_add(&m->count, 1, __ATOMIC_RELAXED); + uint64_t lt_init = 0; + if (__atomic_compare_exchange_n((uint64_t *) &m->owner, <_init, + (uint64_t) lt, 0, __ATOMIC_RELAXED, __ATOMIC_RELAXED)) { /* got the lock */ DIAG_EVENT(m, LT_DIAG_MUTEX_TRYLOCK, m, 0); return 0; } /* failed so return busy */ - rte_atomic64_dec(&m->count); + __atomic_fetch_sub(&m->count, 1, __ATOMIC_RELAXED); DIAG_EVENT(m, LT_DIAG_MUTEX_TRYLOCK, m, POSIX_ERRNO(EBUSY)); return POSIX_ERRNO(EBUSY); } @@ -193,13 +195,13 @@ int lthread_mutex_unlock(struct lthread_mutex *m) return POSIX_ERRNO(EPERM); } - rte_atomic64_dec(&m->count); + __atomic_fetch_sub(&m->count, 1, __ATOMIC_RELAXED); /* if there are blocked threads then make one ready */ - while (rte_atomic64_read(&m->count) > 0) { + while (__atomic_load_n(&m->count, __ATOMIC_RELAXED) > 0) { unblocked = _lthread_queue_remove(m->blocked); if (unblocked != NULL) { - rte_atomic64_dec(&m->count); + __atomic_fetch_sub(&m->count, 1, __ATOMIC_RELAXED); DIAG_EVENT(m, LT_DIAG_MUTEX_UNLOCKED, m, unblocked); RTE_ASSERT(unblocked->sched != NULL); _ready_queue_insert((struct lthread_sched *) diff --git a/examples/performance-thread/common/lthread_mutex.h b/examples/performance-thread/common/lthread_mutex.h index cd866f87b889..730092bdf8bb 100644 --- a/examples/performance-thread/common/lthread_mutex.h +++ b/examples/performance-thread/common/lthread_mutex.h @@ -17,7 +17,7 @@ extern "C" { struct lthread_mutex { struct lthread *owner; - rte_atomic64_t count; + uint64_t count; struct lthread_queue *blocked __rte_cache_aligned; struct lthread_sched *root_sched; char name[MAX_MUTEX_NAME_SIZE]; diff --git a/examples/performance-thread/common/lthread_sched.c b/examples/performance-thread/common/lthread_sched.c index 38ca0c45cbf8..3784b010c221 100644 --- a/examples/performance-thread/common/lthread_sched.c +++ b/examples/performance-thread/common/lthread_sched.c @@ -22,8 +22,6 @@ #include #include -#include -#include #include #include #include @@ -47,8 +45,8 @@ * When a scheduler shuts down it is assumed that the application is terminating */ -static rte_atomic16_t num_schedulers; -static rte_atomic16_t active_schedulers; +static uint16_t num_schedulers; +static uint16_t active_schedulers; /* one scheduler per lcore */ RTE_DEFINE_PER_LCORE(struct lthread_sched *, this_sched) = NULL; @@ -64,10 +62,8 @@ uint64_t diag_mask; RTE_INIT(lthread_sched_ctor) { memset(schedcore, 0, sizeof(schedcore)); - rte_atomic16_init(&num_schedulers); - rte_atomic16_set(&num_schedulers, 1); - rte_atomic16_init(&active_schedulers); - rte_atomic16_set(&active_schedulers, 0); + __atomic_store_n(&num_schedulers, 1, __ATOMIC_RELAXED); + __atomic_store_n(&active_schedulers, 0, __ATOMIC_RELAXED); diag_cb = NULL; } @@ -260,8 +256,8 @@ struct lthread_sched *_lthread_sched_create(size_t stack_size) */ int lthread_num_schedulers_set(int num) { - rte_atomic16_set(&num_schedulers, num); - return (int)rte_atomic16_read(&num_schedulers); + __atomic_store_n(&num_schedulers, num, __ATOMIC_RELAXED); + return (int)__atomic_load_n(&num_schedulers, __ATOMIC_RELAXED); } /* @@ -269,7 +265,7 @@ int lthread_num_schedulers_set(int num) */ int lthread_active_schedulers(void) { - return (int)rte_atomic16_read(&active_schedulers); + return (int)__atomic_load_n(&active_schedulers, __ATOMIC_RELAXED); } @@ -299,8 +295,8 @@ void lthread_scheduler_shutdown_all(void) * for the possibility of a pthread wrapper on lthread_yield(), * something that is not possible unless the scheduler is running. */ - while (rte_atomic16_read(&active_schedulers) < - rte_atomic16_read(&num_schedulers)) + while (__atomic_load_n(&active_schedulers, __ATOMIC_RELAXED) < + __atomic_load_n(&num_schedulers, __ATOMIC_RELAXED)) sched_yield(); for (i = 0; i < LTHREAD_MAX_LCORES; i++) { @@ -415,15 +411,15 @@ static inline int _lthread_sched_isdone(struct lthread_sched *sched) */ static inline void _lthread_schedulers_sync_start(void) { - rte_atomic16_inc(&active_schedulers); + __atomic_fetch_add(&active_schedulers, 1, __ATOMIC_RELAXED); /* wait for lthread schedulers * Note we use sched_yield() rather than pthread_yield() to allow * for the possibility of a pthread wrapper on lthread_yield(), * something that is not possible unless the scheduler is running. */ - while (rte_atomic16_read(&active_schedulers) < - rte_atomic16_read(&num_schedulers)) + while (__atomic_load_n(&active_schedulers, __ATOMIC_RELAXED) < + __atomic_load_n(&num_schedulers, __ATOMIC_RELAXED)) sched_yield(); } @@ -433,15 +429,15 @@ static inline void _lthread_schedulers_sync_start(void) */ static inline void _lthread_schedulers_sync_stop(void) { - rte_atomic16_dec(&active_schedulers); - rte_atomic16_dec(&num_schedulers); + __atomic_fetch_sub(&active_schedulers, 1, __ATOMIC_RELAXED); + __atomic_fetch_sub(&num_schedulers, 1, __ATOMIC_RELAXED); /* wait for schedulers * Note we use sched_yield() rather than pthread_yield() to allow * for the possibility of a pthread wrapper on lthread_yield(), * something that is not possible unless the scheduler is running. */ - while (rte_atomic16_read(&active_schedulers) > 0) + while (__atomic_load_n(&active_schedulers, __ATOMIC_RELAXED) > 0) sched_yield(); } diff --git a/examples/performance-thread/common/lthread_tls.c b/examples/performance-thread/common/lthread_tls.c index 07de6cafabf5..4ab2e3558b1c 100644 --- a/examples/performance-thread/common/lthread_tls.c +++ b/examples/performance-thread/common/lthread_tls.c @@ -18,7 +18,6 @@ #include #include #include -#include #include "lthread_tls.h" #include "lthread_queue.h" @@ -52,8 +51,10 @@ void _lthread_key_pool_init(void) bzero(key_table, sizeof(key_table)); + uint64_t pool_init = 0; /* only one lcore should do this */ - if (rte_atomic64_cmpset(&key_pool_init, 0, 1)) { + if (__atomic_compare_exchange_n(&key_pool_init, &pool_init, 1, 0, + __ATOMIC_RELAXED, __ATOMIC_RELAXED)) { snprintf(name, MAX_LTHREAD_NAME_SIZE, diff --git a/examples/performance-thread/l3fwd-thread/main.c b/examples/performance-thread/l3fwd-thread/main.c index 2905199743a7..50ecc4e820f6 100644 --- a/examples/performance-thread/l3fwd-thread/main.c +++ b/examples/performance-thread/l3fwd-thread/main.c @@ -26,7 +26,6 @@ #include #include #include -#include #include #include #include @@ -570,8 +569,8 @@ RTE_DEFINE_PER_LCORE(struct lcore_conf *, lcore_conf); */ static int lthreads_on = 1; /**< Use lthreads for processing*/ -rte_atomic16_t rx_counter; /**< Number of spawned rx threads */ -rte_atomic16_t tx_counter; /**< Number of spawned tx threads */ +uint16_t rx_counter; /**< Number of spawned rx threads */ +uint16_t tx_counter; /**< Number of spawned tx threads */ struct thread_conf { uint16_t lcore_id; /**< Initial lcore for rx thread */ @@ -1910,11 +1909,8 @@ cpu_load_collector(__rte_unused void *arg) { printf("Waiting for %d rx threads and %d tx threads\n", n_rx_thread, n_tx_thread); - while (rte_atomic16_read(&rx_counter) < n_rx_thread) - rte_pause(); - - while (rte_atomic16_read(&tx_counter) < n_tx_thread) - rte_pause(); + rte_wait_until_equal_16(&rx_counter, n_rx_thread, __ATOMIC_RELAXED); + rte_wait_until_equal_16(&tx_counter, n_tx_thread, __ATOMIC_RELAXED); for (i = 0; i < n_rx_thread; i++) { @@ -2036,7 +2032,7 @@ lthread_tx_per_ring(void *dummy) RTE_LOG(INFO, L3FWD, "entering main tx loop on lcore %u\n", rte_lcore_id()); nb_rx = 0; - rte_atomic16_inc(&tx_counter); + __atomic_fetch_add(&tx_counter, 1, __ATOMIC_RELAXED); while (1) { /* @@ -2161,7 +2157,7 @@ lthread_rx(void *dummy) worker_id = 0; rx_conf->conf.cpu_id = sched_getcpu(); - rte_atomic16_inc(&rx_counter); + __atomic_fetch_add(&rx_counter, 1, __ATOMIC_RELAXED); while (1) { /* @@ -2243,7 +2239,7 @@ lthread_spawner(__rte_unused void *arg) * scheduler as this lthread, yielding is required to let them to run and * prevent deadlock here. */ - while (rte_atomic16_read(&rx_counter) < n_rx_thread) + while (__atomic_load_n(&rx_counter, __ATOMIC_RELAXED) < n_rx_thread) lthread_sleep(100000); /* @@ -2323,7 +2319,7 @@ pthread_tx(void *dummy) RTE_LOG(INFO, L3FWD, "Entering main Tx loop on lcore %u\n", rte_lcore_id()); tx_conf->conf.cpu_id = sched_getcpu(); - rte_atomic16_inc(&tx_counter); + __atomic_fetch_add(&tx_counter, 1, __ATOMIC_RELAXED); while (1) { cur_tsc = rte_rdtsc(); @@ -2406,7 +2402,7 @@ pthread_rx(void *dummy) worker_id = 0; rx_conf->conf.cpu_id = sched_getcpu(); - rte_atomic16_inc(&rx_counter); + __atomic_fetch_add(&rx_counter, 1, __ATOMIC_RELAXED); while (1) { /* From patchwork Wed Oct 13 18:54:04 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dharmik Thakkar X-Patchwork-Id: 101481 X-Patchwork-Delegate: david.marchand@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9DF8CA0C55; Wed, 13 Oct 2021 20:54:58 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3CE0941246; Wed, 13 Oct 2021 20:54:28 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mails.dpdk.org (Postfix) with ESMTP id E7E6641186 for ; Wed, 13 Oct 2021 20:54:21 +0200 (CEST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 3B133152B; Wed, 13 Oct 2021 11:54:21 -0700 (PDT) Received: from 2p2660v4-1.austin.arm.com (2p2660v4-1.austin.arm.com [10.118.13.211]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 34D523F70D; Wed, 13 Oct 2021 11:54:21 -0700 (PDT) From: Dharmik Thakkar To: Cc: dev@dpdk.org, nd@arm.com, honnappa.nagarahalli@arm.com, ruifeng.wang@arm.com, joyce.kong@arm.com, dharmik.thakkar@arm.com Date: Wed, 13 Oct 2021 13:54:04 -0500 Message-Id: <20211013185407.2841183-6-dharmik.thakkar@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211013185407.2841183-1-dharmik.thakkar@arm.com> References: <20210823054952.15001-1-joyce.kong@arm.com> <20211013185407.2841183-1-dharmik.thakkar@arm.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v3 5/8] examples/l2fwd-jobstats: use compiler atomics for stats sync X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Joyce Kong Convert rte_atomic usages to compiler atomic built-ins for stats_read_pending sync in l2fwd_jobstats module. Signed-off-by: Joyce Kong Reviewed-by: Ruifeng Wang --- examples/l2fwd-jobstats/main.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/examples/l2fwd-jobstats/main.c b/examples/l2fwd-jobstats/main.c index 06280321b1f2..62981663ea78 100644 --- a/examples/l2fwd-jobstats/main.c +++ b/examples/l2fwd-jobstats/main.c @@ -16,7 +16,6 @@ #include #include #include -#include #include #include #include @@ -81,7 +80,7 @@ struct lcore_queue_conf { struct rte_jobstats idle_job; struct rte_jobstats_context jobs_context; - rte_atomic16_t stats_read_pending; + uint16_t stats_read_pending; rte_spinlock_t lock; } __rte_cache_aligned; /* >8 End of list of queues to be polled for given lcore. */ @@ -155,9 +154,9 @@ show_lcore_stats(unsigned lcore_id) uint64_t collection_time = rte_get_timer_cycles(); /* Ask forwarding thread to give us stats. */ - rte_atomic16_set(&qconf->stats_read_pending, 1); + __atomic_store_n(&qconf->stats_read_pending, 1, __ATOMIC_RELAXED); rte_spinlock_lock(&qconf->lock); - rte_atomic16_set(&qconf->stats_read_pending, 0); + __atomic_store_n(&qconf->stats_read_pending, 0, __ATOMIC_RELAXED); /* Collect context statistics. */ stats_period = ctx->state_time - ctx->start_time; @@ -526,8 +525,8 @@ l2fwd_main_loop(void) repeats++; need_manage = qconf->flush_timer.expire < now; /* Check if we was esked to give a stats. */ - stats_read_pending = - rte_atomic16_read(&qconf->stats_read_pending); + stats_read_pending = __atomic_load_n(&qconf->stats_read_pending, + __ATOMIC_RELAXED); need_manage |= stats_read_pending; for (i = 0; i < qconf->n_rx_port && !need_manage; i++) From patchwork Wed Oct 13 18:54:05 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dharmik Thakkar X-Patchwork-Id: 101482 X-Patchwork-Delegate: david.marchand@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id C6B5FA0C55; Wed, 13 Oct 2021 20:55:07 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 34DF64124B; Wed, 13 Oct 2021 20:54:29 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mails.dpdk.org (Postfix) with ESMTP id E8216411FA for ; Wed, 13 Oct 2021 20:54:21 +0200 (CEST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 56914152F; Wed, 13 Oct 2021 11:54:21 -0700 (PDT) Received: from 2p2660v4-1.austin.arm.com (2p2660v4-1.austin.arm.com [10.118.13.211]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 500493F70D; Wed, 13 Oct 2021 11:54:21 -0700 (PDT) From: Dharmik Thakkar To: David Hunt Cc: dev@dpdk.org, nd@arm.com, honnappa.nagarahalli@arm.com, ruifeng.wang@arm.com, joyce.kong@arm.com, dharmik.thakkar@arm.com Date: Wed, 13 Oct 2021 13:54:05 -0500 Message-Id: <20211013185407.2841183-7-dharmik.thakkar@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211013185407.2841183-1-dharmik.thakkar@arm.com> References: <20210823054952.15001-1-joyce.kong@arm.com> <20211013185407.2841183-1-dharmik.thakkar@arm.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v3 6/8] examples/vm_power_manager: use compiler atomics for sync X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Joyce Kong Convert rte_atomic32_cmpset to compiler atomic CAS operation for channel status sync. Signed-off-by: Joyce Kong Reviewed-by: Ruifeng Wang --- examples/vm_power_manager/channel_monitor.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/examples/vm_power_manager/channel_monitor.c b/examples/vm_power_manager/channel_monitor.c index f03102eb1b93..d767423a401b 100644 --- a/examples/vm_power_manager/channel_monitor.c +++ b/examples/vm_power_manager/channel_monitor.c @@ -25,7 +25,6 @@ #include #include #include -#include #include #include #ifdef RTE_NET_I40E @@ -827,8 +826,9 @@ process_request(struct rte_power_channel_packet *pkt, if (chan_info == NULL) return -1; - if (rte_atomic32_cmpset(&(chan_info->status), CHANNEL_MGR_CHANNEL_CONNECTED, - CHANNEL_MGR_CHANNEL_PROCESSING) == 0) + uint32_t channel_connected = CHANNEL_MGR_CHANNEL_CONNECTED; + if (__atomic_compare_exchange_n(&(chan_info->status), &channel_connected, + CHANNEL_MGR_CHANNEL_PROCESSING, 0, __ATOMIC_RELAXED, __ATOMIC_RELAXED) == 0) return -1; if (pkt->command == RTE_POWER_CPU_POWER) { @@ -932,8 +932,9 @@ process_request(struct rte_power_channel_packet *pkt, * Return is not checked as channel status may have been set to DISABLED * from management thread */ - rte_atomic32_cmpset(&(chan_info->status), CHANNEL_MGR_CHANNEL_PROCESSING, - CHANNEL_MGR_CHANNEL_CONNECTED); + uint32_t channel_processing = CHANNEL_MGR_CHANNEL_PROCESSING; + __atomic_compare_exchange_n(&(chan_info->status), &channel_processing, + CHANNEL_MGR_CHANNEL_CONNECTED, 0, __ATOMIC_RELAXED, __ATOMIC_RELAXED); return 0; } From patchwork Wed Oct 13 18:54:06 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dharmik Thakkar X-Patchwork-Id: 101483 X-Patchwork-Delegate: david.marchand@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id EBAC8A0C55; Wed, 13 Oct 2021 20:55:15 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4C51A41250; Wed, 13 Oct 2021 20:54:30 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mails.dpdk.org (Postfix) with ESMTP id EA1C7411FC for ; Wed, 13 Oct 2021 20:54:21 +0200 (CEST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 71DD0153B; Wed, 13 Oct 2021 11:54:21 -0700 (PDT) Received: from 2p2660v4-1.austin.arm.com (2p2660v4-1.austin.arm.com [10.118.13.211]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 6B0083F70D; Wed, 13 Oct 2021 11:54:21 -0700 (PDT) From: Dharmik Thakkar To: Byron Marohn , Yipeng Wang Cc: dev@dpdk.org, nd@arm.com, honnappa.nagarahalli@arm.com, ruifeng.wang@arm.com, joyce.kong@arm.com, dharmik.thakkar@arm.com Date: Wed, 13 Oct 2021 13:54:06 -0500 Message-Id: <20211013185407.2841183-8-dharmik.thakkar@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211013185407.2841183-1-dharmik.thakkar@arm.com> References: <20210823054952.15001-1-joyce.kong@arm.com> <20211013185407.2841183-1-dharmik.thakkar@arm.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v3 7/8] examples/server_node_efd: use compiler atomics for sync X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Joyce Kong Convert rte_atomic32_test_and_set to compiler CAS atomic operation for display_stats sync. Signed-off-by: Joyce Kong Reviewed-by: Ruifeng Wang --- examples/server_node_efd/server/main.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/examples/server_node_efd/server/main.c b/examples/server_node_efd/server/main.c index 0d0d5679e4c4..fd72882e3a1c 100644 --- a/examples/server_node_efd/server/main.c +++ b/examples/server_node_efd/server/main.c @@ -22,7 +22,6 @@ #include #include #include -#include #include #include #include @@ -178,10 +177,12 @@ static int sleep_lcore(__rte_unused void *dummy) { /* Used to pick a display thread - static, so zero-initialised */ - static rte_atomic32_t display_stats; + static uint32_t display_stats; /* Only one core should display stats */ - if (rte_atomic32_test_and_set(&display_stats)) { + uint32_t display_init = 0; + if (__atomic_compare_exchange_n(&display_stats, &display_init, 1, 0, + __ATOMIC_RELAXED, __ATOMIC_RELAXED)) { const unsigned int sleeptime = 1; printf("Core %u displaying statistics\n", rte_lcore_id()); From patchwork Wed Oct 13 18:54:07 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dharmik Thakkar X-Patchwork-Id: 101484 X-Patchwork-Delegate: david.marchand@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 097A7A0C55; Wed, 13 Oct 2021 20:55:24 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4F56E41255; Wed, 13 Oct 2021 20:54:31 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mails.dpdk.org (Postfix) with ESMTP id 37D3841173 for ; Wed, 13 Oct 2021 20:54:22 +0200 (CEST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id BE1C61570; Wed, 13 Oct 2021 11:54:21 -0700 (PDT) Received: from 2p2660v4-1.austin.arm.com (2p2660v4-1.austin.arm.com [10.118.13.211]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id B14863F70D; Wed, 13 Oct 2021 11:54:21 -0700 (PDT) From: Dharmik Thakkar To: Chas Williams , "Min Hu (Connor)" , Konstantin Ananyev , Radu Nicolau , Akhil Goyal , Declan Doherty , Sunil Kumar Kori , Pavan Nikhilesh , Bruce Richardson , David Hunt , Anatoly Burakov , Byron Marohn , Yipeng Wang , Maxime Coquelin , Chenbo Xia Cc: dev@dpdk.org, nd@arm.com, honnappa.nagarahalli@arm.com, ruifeng.wang@arm.com, joyce.kong@arm.com, dharmik.thakkar@arm.com Date: Wed, 13 Oct 2021 13:54:07 -0500 Message-Id: <20211013185407.2841183-9-dharmik.thakkar@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211013185407.2841183-1-dharmik.thakkar@arm.com> References: <20210823054952.15001-1-joyce.kong@arm.com> <20211013185407.2841183-1-dharmik.thakkar@arm.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v3 8/8] examples: remove unnecessary include of atomic X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Joyce Kong Remove the unnecessary header file rte_atomic.h included in example module. Signed-off-by: Joyce Kong Signed-off-by: Dharmik Thakkar Reviewed-by: Ruifeng Wang --- examples/bond/main.c | 1 - examples/ip_fragmentation/main.c | 1 - examples/ip_reassembly/main.c | 1 - examples/ipsec-secgw/ipsec-secgw.c | 1 - examples/ipv4_multicast/main.c | 1 - examples/l2fwd-crypto/main.c | 1 - examples/l2fwd-event/l2fwd_common.h | 1 - examples/l2fwd-event/l2fwd_event.c | 1 - examples/l2fwd-keepalive/main.c | 1 - examples/l2fwd/main.c | 1 - examples/l3fwd-acl/main.c | 1 - examples/l3fwd-power/main.c | 1 - examples/l3fwd/main.c | 1 - examples/link_status_interrupt/main.c | 1 - examples/multi_process/client_server_mp/mp_client/client.c | 1 - examples/multi_process/client_server_mp/mp_server/init.c | 1 - examples/multi_process/simple_mp/main.c | 1 - examples/multi_process/simple_mp/mp_commands.c | 1 - examples/multi_process/symmetric_mp/main.c | 1 - examples/server_node_efd/node/node.c | 1 - examples/server_node_efd/server/init.c | 1 - examples/vhost_blk/blk.c | 1 - examples/vm_power_manager/channel_manager.c | 1 - examples/vm_power_manager/channel_manager.h | 1 - examples/vmdq/main.c | 1 - examples/vmdq_dcb/main.c | 1 - 26 files changed, 26 deletions(-) diff --git a/examples/bond/main.c b/examples/bond/main.c index 7adaa93cad5c..ed39b7237fbb 100644 --- a/examples/bond/main.c +++ b/examples/bond/main.c @@ -24,7 +24,6 @@ #include #include #include -#include #include #include #include diff --git a/examples/ip_fragmentation/main.c b/examples/ip_fragmentation/main.c index a7f40970f27f..cc338f4269b0 100644 --- a/examples/ip_fragmentation/main.c +++ b/examples/ip_fragmentation/main.c @@ -21,7 +21,6 @@ #include #include #include -#include #include #include #include diff --git a/examples/ip_reassembly/main.c b/examples/ip_reassembly/main.c index d611c7d01609..f513e2f87937 100644 --- a/examples/ip_reassembly/main.c +++ b/examples/ip_reassembly/main.c @@ -22,7 +22,6 @@ #include #include #include -#include #include #include #include diff --git a/examples/ipsec-secgw/ipsec-secgw.c b/examples/ipsec-secgw/ipsec-secgw.c index 7b01872c6f9f..393e30d78063 100644 --- a/examples/ipsec-secgw/ipsec-secgw.c +++ b/examples/ipsec-secgw/ipsec-secgw.c @@ -24,7 +24,6 @@ #include #include #include -#include #include #include #include diff --git a/examples/ipv4_multicast/main.c b/examples/ipv4_multicast/main.c index d10de30ddbae..818843c8b6c8 100644 --- a/examples/ipv4_multicast/main.c +++ b/examples/ipv4_multicast/main.c @@ -20,7 +20,6 @@ #include #include #include -#include #include #include #include diff --git a/examples/l2fwd-crypto/main.c b/examples/l2fwd-crypto/main.c index c2ffbdd50636..83bbea89c703 100644 --- a/examples/l2fwd-crypto/main.c +++ b/examples/l2fwd-crypto/main.c @@ -20,7 +20,6 @@ #include #include -#include #include #include #include diff --git a/examples/l2fwd-event/l2fwd_common.h b/examples/l2fwd-event/l2fwd_common.h index cecbd9b70e31..ad453b4dc983 100644 --- a/examples/l2fwd-event/l2fwd_common.h +++ b/examples/l2fwd-event/l2fwd_common.h @@ -27,7 +27,6 @@ #include #include #include -#include #include #include #include diff --git a/examples/l2fwd-event/l2fwd_event.c b/examples/l2fwd-event/l2fwd_event.c index 7ba5311d6688..acfacfa4fb34 100644 --- a/examples/l2fwd-event/l2fwd_event.c +++ b/examples/l2fwd-event/l2fwd_event.c @@ -5,7 +5,6 @@ #include #include -#include #include #include #include diff --git a/examples/l2fwd-keepalive/main.c b/examples/l2fwd-keepalive/main.c index 07271affb4a9..af59d51b3ec4 100644 --- a/examples/l2fwd-keepalive/main.c +++ b/examples/l2fwd-keepalive/main.c @@ -24,7 +24,6 @@ #include #include #include -#include #include #include #include diff --git a/examples/l2fwd/main.c b/examples/l2fwd/main.c index f3deeba0a665..8feb50e0f542 100644 --- a/examples/l2fwd/main.c +++ b/examples/l2fwd/main.c @@ -24,7 +24,6 @@ #include #include #include -#include #include #include #include diff --git a/examples/l3fwd-acl/main.c b/examples/l3fwd-acl/main.c index 60545f305934..add5e3c7c459 100644 --- a/examples/l3fwd-acl/main.c +++ b/examples/l3fwd-acl/main.c @@ -20,7 +20,6 @@ #include #include #include -#include #include #include #include diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c index 73a3ab5bc0eb..be0d4f161685 100644 --- a/examples/l3fwd-power/main.c +++ b/examples/l3fwd-power/main.c @@ -24,7 +24,6 @@ #include #include #include -#include #include #include #include diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c index 00ac267af1dd..518fefe90b90 100644 --- a/examples/l3fwd/main.c +++ b/examples/l3fwd/main.c @@ -24,7 +24,6 @@ #include #include #include -#include #include #include #include diff --git a/examples/link_status_interrupt/main.c b/examples/link_status_interrupt/main.c index e4542df11f87..ce8ae059d789 100644 --- a/examples/link_status_interrupt/main.c +++ b/examples/link_status_interrupt/main.c @@ -22,7 +22,6 @@ #include #include #include -#include #include #include #include diff --git a/examples/multi_process/client_server_mp/mp_client/client.c b/examples/multi_process/client_server_mp/mp_client/client.c index 6d4c2468164f..087c38ef73c8 100644 --- a/examples/multi_process/client_server_mp/mp_client/client.c +++ b/examples/multi_process/client_server_mp/mp_client/client.c @@ -17,7 +17,6 @@ #include #include #include -#include #include #include #include diff --git a/examples/multi_process/client_server_mp/mp_server/init.c b/examples/multi_process/client_server_mp/mp_server/init.c index 1ad71ca7ec5f..be669c2bcc06 100644 --- a/examples/multi_process/client_server_mp/mp_server/init.c +++ b/examples/multi_process/client_server_mp/mp_server/init.c @@ -15,7 +15,6 @@ #include #include #include -#include #include #include #include diff --git a/examples/multi_process/simple_mp/main.c b/examples/multi_process/simple_mp/main.c index df996f0f84e1..5df2a3900012 100644 --- a/examples/multi_process/simple_mp/main.c +++ b/examples/multi_process/simple_mp/main.c @@ -30,7 +30,6 @@ #include #include #include -#include #include #include #include diff --git a/examples/multi_process/simple_mp/mp_commands.c b/examples/multi_process/simple_mp/mp_commands.c index 311d0fe77538..a5f91b00be36 100644 --- a/examples/multi_process/simple_mp/mp_commands.c +++ b/examples/multi_process/simple_mp/mp_commands.c @@ -14,7 +14,6 @@ #include #include #include -#include #include #include #include diff --git a/examples/multi_process/symmetric_mp/main.c b/examples/multi_process/symmetric_mp/main.c index 01dc3acf34d5..a66328ba0caf 100644 --- a/examples/multi_process/symmetric_mp/main.c +++ b/examples/multi_process/symmetric_mp/main.c @@ -31,7 +31,6 @@ #include #include #include -#include #include #include #include diff --git a/examples/server_node_efd/node/node.c b/examples/server_node_efd/node/node.c index 4580a44e3e5d..ba1c7e515326 100644 --- a/examples/server_node_efd/node/node.c +++ b/examples/server_node_efd/node/node.c @@ -17,7 +17,6 @@ #include #include #include -#include #include #include #include diff --git a/examples/server_node_efd/server/init.c b/examples/server_node_efd/server/init.c index 9ebd88bac20e..a19934dbe0c8 100644 --- a/examples/server_node_efd/server/init.c +++ b/examples/server_node_efd/server/init.c @@ -15,7 +15,6 @@ #include #include #include -#include #include #include #include diff --git a/examples/vhost_blk/blk.c b/examples/vhost_blk/blk.c index f8c8549b3acc..d082ab3c94e5 100644 --- a/examples/vhost_blk/blk.c +++ b/examples/vhost_blk/blk.c @@ -15,7 +15,6 @@ #include #include -#include #include #include #include diff --git a/examples/vm_power_manager/channel_manager.c b/examples/vm_power_manager/channel_manager.c index fe915678541e..838465ab4b18 100644 --- a/examples/vm_power_manager/channel_manager.c +++ b/examples/vm_power_manager/channel_manager.c @@ -21,7 +21,6 @@ #include #include #include -#include #include #include diff --git a/examples/vm_power_manager/channel_manager.h b/examples/vm_power_manager/channel_manager.h index e55376fcdbb1..7038e9d83bb8 100644 --- a/examples/vm_power_manager/channel_manager.h +++ b/examples/vm_power_manager/channel_manager.h @@ -11,7 +11,6 @@ extern "C" { #include #include -#include #include /* Maximum name length including '\0' terminator */ diff --git a/examples/vmdq/main.c b/examples/vmdq/main.c index ee7f4324e141..85996bf864b7 100644 --- a/examples/vmdq/main.c +++ b/examples/vmdq/main.c @@ -20,7 +20,6 @@ #include #include #include -#include #include #include #include diff --git a/examples/vmdq_dcb/main.c b/examples/vmdq_dcb/main.c index 14c20e6a8b26..be0179fdeaf0 100644 --- a/examples/vmdq_dcb/main.c +++ b/examples/vmdq_dcb/main.c @@ -20,7 +20,6 @@ #include #include #include -#include #include #include #include