From patchwork Mon Aug 23 05:49:45 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joyce Kong X-Patchwork-Id: 97196 X-Patchwork-Delegate: thomas@monjalon.net 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 841C3A0C56; Mon, 23 Aug 2021 07:50:22 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A57CE41135; Mon, 23 Aug 2021 07:50:19 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mails.dpdk.org (Postfix) with ESMTP id B60A641124 for ; Mon, 23 Aug 2021 07:50:17 +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 15DBB1FB; Sun, 22 Aug 2021 22:50:17 -0700 (PDT) Received: from net-arm-n1sdp.shanghai.arm.com (net-arm-n1sdp.shanghai.arm.com [10.169.208.222]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id B1E3E3F5A1; Sun, 22 Aug 2021 22:50:14 -0700 (PDT) From: Joyce Kong To: Nicolas Chautru Cc: dev@dpdk.org, thomas@monjalon.net, david.marchand@redhat.com, honnappa.nagarahalli@arm.com, ruifeng.wang@arm.com, nd@arm.com Date: Mon, 23 Aug 2021 00:49:45 -0500 Message-Id: <20210823054952.15001-2-joyce.kong@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210823054952.15001-1-joyce.kong@arm.com> References: <20210823054952.15001-1-joyce.kong@arm.com> Subject: [dpdk-dev] [PATCH v2 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" 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 5251db0b16..75c620ea75 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 @@ -328,7 +327,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); @@ -682,7 +681,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); } @@ -928,7 +927,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) @@ -1062,7 +1061,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 Mon Aug 23 05:49:46 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joyce Kong X-Patchwork-Id: 97197 X-Patchwork-Delegate: thomas@monjalon.net 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 F18B7A0C56; Mon, 23 Aug 2021 07:50:28 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D5D9C41148; Mon, 23 Aug 2021 07:50:21 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mails.dpdk.org (Postfix) with ESMTP id 8632741140 for ; Mon, 23 Aug 2021 07:50:20 +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 F21741FB; Sun, 22 Aug 2021 22:50:19 -0700 (PDT) Received: from net-arm-n1sdp.shanghai.arm.com (net-arm-n1sdp.shanghai.arm.com [10.169.208.222]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 9EF533F5A1; Sun, 22 Aug 2021 22:50:17 -0700 (PDT) From: Joyce Kong To: Anatoly Burakov Cc: dev@dpdk.org, thomas@monjalon.net, david.marchand@redhat.com, honnappa.nagarahalli@arm.com, ruifeng.wang@arm.com, nd@arm.com Date: Mon, 23 Aug 2021 00:49:46 -0500 Message-Id: <20210823054952.15001-3-joyce.kong@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210823054952.15001-1-joyce.kong@arm.com> References: <20210823054952.15001-1-joyce.kong@arm.com> Subject: [dpdk-dev] [PATCH v2 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" 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 9bcee460fd..b4761ebc7b 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 Mon Aug 23 05:49:47 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joyce Kong X-Patchwork-Id: 97198 X-Patchwork-Delegate: thomas@monjalon.net 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 9608FA0C56; Mon, 23 Aug 2021 07:50:34 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id F066B40687; Mon, 23 Aug 2021 07:50:24 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mails.dpdk.org (Postfix) with ESMTP id 5DD8541151 for ; Mon, 23 Aug 2021 07:50:23 +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 DB0511FB; Sun, 22 Aug 2021 22:50:22 -0700 (PDT) Received: from net-arm-n1sdp.shanghai.arm.com (net-arm-n1sdp.shanghai.arm.com [10.169.208.222]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 88B583F5A1; Sun, 22 Aug 2021 22:50:20 -0700 (PDT) From: Joyce Kong To: Ferruh Yigit Cc: dev@dpdk.org, thomas@monjalon.net, david.marchand@redhat.com, honnappa.nagarahalli@arm.com, ruifeng.wang@arm.com, nd@arm.com Date: Mon, 23 Aug 2021 00:49:47 -0500 Message-Id: <20210823054952.15001-4-joyce.kong@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210823054952.15001-1-joyce.kong@arm.com> References: <20210823054952.15001-1-joyce.kong@arm.com> Subject: [dpdk-dev] [PATCH v2 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" 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 beabb3c848..ad1f569e18 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 Mon Aug 23 05:49:48 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joyce Kong X-Patchwork-Id: 97199 X-Patchwork-Delegate: thomas@monjalon.net 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 6015EA0C56; Mon, 23 Aug 2021 07:50:40 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2C36141159; Mon, 23 Aug 2021 07:50:27 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mails.dpdk.org (Postfix) with ESMTP id 4E8A141158 for ; Mon, 23 Aug 2021 07:50:26 +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 CCF531FB; Sun, 22 Aug 2021 22:50:25 -0700 (PDT) Received: from net-arm-n1sdp.shanghai.arm.com (net-arm-n1sdp.shanghai.arm.com [10.169.208.222]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 7A6083F5A1; Sun, 22 Aug 2021 22:50:23 -0700 (PDT) From: Joyce Kong To: John McNamara Cc: dev@dpdk.org, thomas@monjalon.net, david.marchand@redhat.com, honnappa.nagarahalli@arm.com, ruifeng.wang@arm.com, nd@arm.com Date: Mon, 23 Aug 2021 00:49:48 -0500 Message-Id: <20210823054952.15001-5-joyce.kong@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210823054952.15001-1-joyce.kong@arm.com> References: <20210823054952.15001-1-joyce.kong@arm.com> Subject: [dpdk-dev] [PATCH v2 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" 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 3f1f48db43..98123f34f8 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 e876dda6da..7ee89eef38 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 a352f13b75..d010126f16 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 01da6cad4f..061fc5c19a 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 cd866f87b8..730092bdf8 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 38ca0c45cb..3784b010c2 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 07de6cafab..4ab2e3558b 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 2f593abf26..ba9ad034e6 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 Mon Aug 23 05:49:49 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joyce Kong X-Patchwork-Id: 97200 X-Patchwork-Delegate: thomas@monjalon.net 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 97677A0C56; Mon, 23 Aug 2021 07:50:47 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CB53241161; Mon, 23 Aug 2021 07:50:30 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mails.dpdk.org (Postfix) with ESMTP id F1EFB41163 for ; Mon, 23 Aug 2021 07:50:28 +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 788961042; Sun, 22 Aug 2021 22:50:28 -0700 (PDT) Received: from net-arm-n1sdp.shanghai.arm.com (net-arm-n1sdp.shanghai.arm.com [10.169.208.222]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 622DE3F5A1; Sun, 22 Aug 2021 22:50:26 -0700 (PDT) From: Joyce Kong To: Cc: dev@dpdk.org, thomas@monjalon.net, david.marchand@redhat.com, honnappa.nagarahalli@arm.com, ruifeng.wang@arm.com, nd@arm.com Date: Mon, 23 Aug 2021 00:49:49 -0500 Message-Id: <20210823054952.15001-6-joyce.kong@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210823054952.15001-1-joyce.kong@arm.com> References: <20210823054952.15001-1-joyce.kong@arm.com> Subject: [dpdk-dev] [PATCH v2 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" 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 bbb4a27a6d..99a17de181 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 Mon Aug 23 05:49:50 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joyce Kong X-Patchwork-Id: 97201 X-Patchwork-Delegate: thomas@monjalon.net 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 1B57EA0C56; Mon, 23 Aug 2021 07:50:53 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 005F141124; Mon, 23 Aug 2021 07:50:34 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mails.dpdk.org (Postfix) with ESMTP id CD7B741166 for ; Mon, 23 Aug 2021 07:50:31 +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 600CE1042; Sun, 22 Aug 2021 22:50:31 -0700 (PDT) Received: from net-arm-n1sdp.shanghai.arm.com (net-arm-n1sdp.shanghai.arm.com [10.169.208.222]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 0E3853F5A1; Sun, 22 Aug 2021 22:50:28 -0700 (PDT) From: Joyce Kong To: David Hunt Cc: dev@dpdk.org, thomas@monjalon.net, david.marchand@redhat.com, honnappa.nagarahalli@arm.com, ruifeng.wang@arm.com, nd@arm.com Date: Mon, 23 Aug 2021 00:49:50 -0500 Message-Id: <20210823054952.15001-7-joyce.kong@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210823054952.15001-1-joyce.kong@arm.com> References: <20210823054952.15001-1-joyce.kong@arm.com> Subject: [dpdk-dev] [PATCH v2 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" 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 99f81544d7..3c20406f7c 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 @@ -829,8 +828,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) { @@ -934,8 +934,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 Mon Aug 23 05:49:51 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joyce Kong X-Patchwork-Id: 97202 X-Patchwork-Delegate: thomas@monjalon.net 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 6E166A0C56; Mon, 23 Aug 2021 07:50:58 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3DB964117A; Mon, 23 Aug 2021 07:50:36 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mails.dpdk.org (Postfix) with ESMTP id 0F4A741178 for ; Mon, 23 Aug 2021 07:50:35 +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 8F3011042; Sun, 22 Aug 2021 22:50:34 -0700 (PDT) Received: from net-arm-n1sdp.shanghai.arm.com (net-arm-n1sdp.shanghai.arm.com [10.169.208.222]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id E96BA3F5A1; Sun, 22 Aug 2021 22:50:31 -0700 (PDT) From: Joyce Kong To: Byron Marohn , Yipeng Wang Cc: dev@dpdk.org, thomas@monjalon.net, david.marchand@redhat.com, honnappa.nagarahalli@arm.com, ruifeng.wang@arm.com, nd@arm.com Date: Mon, 23 Aug 2021 00:49:51 -0500 Message-Id: <20210823054952.15001-8-joyce.kong@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210823054952.15001-1-joyce.kong@arm.com> References: <20210823054952.15001-1-joyce.kong@arm.com> Subject: [dpdk-dev] [PATCH v2 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" 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 7d07131dbf..b69beb012c 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 @@ -180,10 +179,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 Mon Aug 23 05:49:52 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joyce Kong X-Patchwork-Id: 97203 X-Patchwork-Delegate: thomas@monjalon.net 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 4C044A0C56; Mon, 23 Aug 2021 07:51:04 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6AEAE41140; Mon, 23 Aug 2021 07:50:42 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mails.dpdk.org (Postfix) with ESMTP id BCC124114C for ; Mon, 23 Aug 2021 07:50:41 +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 429A51FB; Sun, 22 Aug 2021 22:50:41 -0700 (PDT) Received: from net-arm-n1sdp.shanghai.arm.com (net-arm-n1sdp.shanghai.arm.com [10.169.208.222]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 4B9403F5A1; Sun, 22 Aug 2021 22:50:35 -0700 (PDT) From: Joyce Kong 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, thomas@monjalon.net, david.marchand@redhat.com, honnappa.nagarahalli@arm.com, ruifeng.wang@arm.com, nd@arm.com Date: Mon, 23 Aug 2021 00:49:52 -0500 Message-Id: <20210823054952.15001-9-joyce.kong@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210823054952.15001-1-joyce.kong@arm.com> References: <20210823054952.15001-1-joyce.kong@arm.com> Subject: [dpdk-dev] [PATCH v2 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" Remove the unnecessary header file rte_atomic.h included in example module. Signed-off-by: Joyce Kong 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/vhost_blk/vhost_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 - 27 files changed, 27 deletions(-) diff --git a/examples/bond/main.c b/examples/bond/main.c index f48400e211..de1e995a8a 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 f245369720..f965624c8b 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 8645ac790b..6a8e91673d 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 f252d34985..012b908410 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 cc527d7f6b..5830ad61c1 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 5f539c458c..e302ad022c 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 939221d45a..1a418e6a22 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 7ba5311d66..acfacfa4fb 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 4e1a17cfe4..cb7f267259 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 911e40c66e..56a0663111 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 a1f457b564..2a942731bc 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 aa7b8db44a..c29b4fe034 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 00ac267af1..518fefe90b 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 7470aa539a..302a267e0e 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 6d4c246816..087c38ef73 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 1ad71ca7ec..be669c2bcc 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 df996f0f84..5df2a39000 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 311d0fe775..a5f91b00be 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 01dc3acf34..a66328ba0c 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 4580a44e3e..ba1c7e5153 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 9ebd88bac2..a19934dbe0 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 f8c8549b3a..d082ab3c94 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/vhost_blk/vhost_blk.c b/examples/vhost_blk/vhost_blk.c index fe2b4e4803..9e291dc442 100644 --- a/examples/vhost_blk/vhost_blk.c +++ b/examples/vhost_blk/vhost_blk.c @@ -17,7 +17,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 fe91567854..838465ab4b 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 e55376fcdb..7038e9d83b 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 d3bc19f78e..a958ad2167 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 685a03bdd1..52e930f83a 100644 --- a/examples/vmdq_dcb/main.c +++ b/examples/vmdq_dcb/main.c @@ -20,7 +20,6 @@ #include #include #include -#include #include #include #include