From patchwork Tue May 10 06:31:17 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ruifeng Wang X-Patchwork-Id: 110963 X-Patchwork-Delegate: ajit.khaparde@broadcom.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 A2BC9A04FD; Tue, 10 May 2022 08:31:42 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C495541156; Tue, 10 May 2022 08:31:41 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mails.dpdk.org (Postfix) with ESMTP id D63F741156 for ; Tue, 10 May 2022 08:31:39 +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 3385F12FC; Mon, 9 May 2022 23:31:39 -0700 (PDT) Received: from net-arm-n1amp-02.shanghai.arm.com (net-arm-n1amp-02.shanghai.arm.com [10.169.210.142]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 92BD43F73D; Mon, 9 May 2022 23:31:36 -0700 (PDT) From: Ruifeng Wang To: ajit.khaparde@broadcom.com, somnath.kotur@broadcom.com Cc: dev@dpdk.org, honnappa.nagarahalli@arm.com, nd@arm.com, Ruifeng Wang , Kathleen Capella Subject: [PATCH 1/2] net/bnxt: use compiler atomics for stats Date: Tue, 10 May 2022 14:31:17 +0800 Message-Id: <20220510063118.449216-2-ruifeng.wang@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220510063118.449216-1-ruifeng.wang@arm.com> References: <20220510063118.449216-1-ruifeng.wang@arm.com> MIME-Version: 1.0 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 Converted rte_atomic usages to compiler atomic built-ins. Signed-off-by: Ruifeng Wang Reviewed-by: Kathleen Capella --- drivers/net/bnxt/bnxt_rxq.c | 2 +- drivers/net/bnxt/bnxt_rxq.h | 2 +- drivers/net/bnxt/bnxt_rxr.c | 9 +++++---- drivers/net/bnxt/bnxt_stats.c | 4 ++-- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/net/bnxt/bnxt_rxq.c b/drivers/net/bnxt/bnxt_rxq.c index cd3bb1446f..9c93cde9b3 100644 --- a/drivers/net/bnxt/bnxt_rxq.c +++ b/drivers/net/bnxt/bnxt_rxq.c @@ -378,7 +378,7 @@ int bnxt_rx_queue_setup_op(struct rte_eth_dev *eth_dev, "ring_dma_zone_reserve for rx_ring failed!\n"); goto err; } - rte_atomic64_init(&rxq->rx_mbuf_alloc_fail); + rxq->rx_mbuf_alloc_fail = 0; /* rxq 0 must not be stopped when used as async CPR */ if (!BNXT_NUM_ASYNC_CPR(bp) && queue_idx == 0) diff --git a/drivers/net/bnxt/bnxt_rxq.h b/drivers/net/bnxt/bnxt_rxq.h index 0331c23810..7b52a21497 100644 --- a/drivers/net/bnxt/bnxt_rxq.h +++ b/drivers/net/bnxt/bnxt_rxq.h @@ -40,7 +40,7 @@ struct bnxt_rx_queue { struct bnxt_rx_ring_info *rx_ring; struct bnxt_cp_ring_info *cp_ring; struct rte_mbuf fake_mbuf; - rte_atomic64_t rx_mbuf_alloc_fail; + uint64_t rx_mbuf_alloc_fail; const struct rte_memzone *mz; }; diff --git a/drivers/net/bnxt/bnxt_rxr.c b/drivers/net/bnxt/bnxt_rxr.c index 5a9cf48e67..738f2f584c 100644 --- a/drivers/net/bnxt/bnxt_rxr.c +++ b/drivers/net/bnxt/bnxt_rxr.c @@ -49,7 +49,7 @@ static inline int bnxt_alloc_rx_data(struct bnxt_rx_queue *rxq, rx_buf = &rxr->rx_buf_ring[prod]; mbuf = __bnxt_alloc_rx_data(rxq->mb_pool); if (!mbuf) { - rte_atomic64_inc(&rxq->rx_mbuf_alloc_fail); + __atomic_fetch_add(&rxq->rx_mbuf_alloc_fail, 1, __ATOMIC_RELAXED); return -ENOMEM; } @@ -84,7 +84,7 @@ static inline int bnxt_alloc_ag_data(struct bnxt_rx_queue *rxq, mbuf = __bnxt_alloc_rx_data(rxq->mb_pool); if (!mbuf) { - rte_atomic64_inc(&rxq->rx_mbuf_alloc_fail); + __atomic_fetch_add(&rxq->rx_mbuf_alloc_fail, 1, __ATOMIC_RELAXED); return -ENOMEM; } @@ -459,7 +459,7 @@ static inline struct rte_mbuf *bnxt_tpa_end( struct rte_mbuf *new_data = __bnxt_alloc_rx_data(rxq->mb_pool); RTE_ASSERT(new_data != NULL); if (!new_data) { - rte_atomic64_inc(&rxq->rx_mbuf_alloc_fail); + __atomic_fetch_add(&rxq->rx_mbuf_alloc_fail, 1, __ATOMIC_RELAXED); return NULL; } tpa_info->mbuf = new_data; @@ -1369,7 +1369,8 @@ int bnxt_init_one_rx_ring(struct bnxt_rx_queue *rxq) rxr->tpa_info[i].mbuf = __bnxt_alloc_rx_data(rxq->mb_pool); if (!rxr->tpa_info[i].mbuf) { - rte_atomic64_inc(&rxq->rx_mbuf_alloc_fail); + __atomic_fetch_add(&rxq->rx_mbuf_alloc_fail, 1, + __ATOMIC_RELAXED); return -ENOMEM; } } diff --git a/drivers/net/bnxt/bnxt_stats.c b/drivers/net/bnxt/bnxt_stats.c index 208aa5616d..72169e8b35 100644 --- a/drivers/net/bnxt/bnxt_stats.c +++ b/drivers/net/bnxt/bnxt_stats.c @@ -578,7 +578,7 @@ int bnxt_stats_get_op(struct rte_eth_dev *eth_dev, bnxt_fill_rte_eth_stats(bnxt_stats, &ring_stats, i, true); bnxt_stats->rx_nombuf += - rte_atomic64_read(&rxq->rx_mbuf_alloc_fail); + __atomic_load_n(&rxq->rx_mbuf_alloc_fail, __ATOMIC_RELAXED); } num_q_stats = RTE_MIN(bp->tx_cp_nr_rings, @@ -632,7 +632,7 @@ int bnxt_stats_reset_op(struct rte_eth_dev *eth_dev) for (i = 0; i < bp->rx_cp_nr_rings; i++) { struct bnxt_rx_queue *rxq = bp->rx_queues[i]; - rte_atomic64_clear(&rxq->rx_mbuf_alloc_fail); + rxq->rx_mbuf_alloc_fail = 0; } bnxt_clear_prev_stat(bp); From patchwork Tue May 10 06:31:18 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ruifeng Wang X-Patchwork-Id: 110964 X-Patchwork-Delegate: ajit.khaparde@broadcom.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 AC3A0A04FD; Tue, 10 May 2022 08:31:49 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EE3A44282E; Tue, 10 May 2022 08:31:45 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mails.dpdk.org (Postfix) with ESMTP id B8B4642833 for ; Tue, 10 May 2022 08:31:44 +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 5373812FC; Mon, 9 May 2022 23:31:44 -0700 (PDT) Received: from net-arm-n1amp-02.shanghai.arm.com (net-arm-n1amp-02.shanghai.arm.com [10.169.210.142]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id A9B203F73D; Mon, 9 May 2022 23:31:41 -0700 (PDT) From: Ruifeng Wang To: ajit.khaparde@broadcom.com, somnath.kotur@broadcom.com Cc: dev@dpdk.org, honnappa.nagarahalli@arm.com, nd@arm.com, Ruifeng Wang , Kathleen Capella Subject: [PATCH 2/2] net/bnxt: remove some dead code Date: Tue, 10 May 2022 14:31:18 +0800 Message-Id: <20220510063118.449216-3-ruifeng.wang@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220510063118.449216-1-ruifeng.wang@arm.com> References: <20220510063118.449216-1-ruifeng.wang@arm.com> MIME-Version: 1.0 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 Removed some macros that were defined but not used in this driver. As a result, rte_smp_xx occurrence is removed from this driver. Signed-off-by: Ruifeng Wang Reviewed-by: Kathleen Capella --- drivers/net/bnxt/bnxt_cpr.h | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/drivers/net/bnxt/bnxt_cpr.h b/drivers/net/bnxt/bnxt_cpr.h index 52db382c2f..dab6bed2ae 100644 --- a/drivers/net/bnxt/bnxt_cpr.h +++ b/drivers/net/bnxt/bnxt_cpr.h @@ -39,25 +39,11 @@ struct bnxt_db_info; #define B_CP_DB_DISARM(cpr) (*(uint32_t *)((cpr)->cp_db.doorbell) = \ DB_KEY_CP | DB_IRQ_DIS) -#define B_CP_DB_IDX_ARM(cpr, cons) \ - (*(uint32_t *)((cpr)->cp_db.doorbell) = (DB_CP_REARM_FLAGS | \ - (cons))) - -#define B_CP_DB_IDX_DISARM(cpr, cons) do { \ - rte_smp_wmb(); \ - (*(uint32_t *)((cpr)->cp_db.doorbell) = (DB_CP_FLAGS | \ - (cons)); \ -} while (0) #define B_CP_DIS_DB(cpr, raw_cons) \ rte_write32_relaxed((DB_CP_FLAGS | \ DB_RING_IDX(&((cpr)->cp_db), raw_cons)), \ ((cpr)->cp_db.doorbell)) -#define B_CP_DB(cpr, raw_cons, ring_mask) \ - rte_write32((DB_CP_FLAGS | \ - RING_CMPL((ring_mask), raw_cons)), \ - ((cpr)->cp_db.doorbell)) - struct bnxt_db_info { void *doorbell; union {