From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5F69ACD5BB8 for ; Sat, 23 May 2026 19:59:40 +0000 (UTC) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E16694066E; Sat, 23 May 2026 21:58:57 +0200 (CEST) Received: from mail-dy1-f181.google.com (mail-dy1-f181.google.com [74.125.82.181]) by mails.dpdk.org (Postfix) with ESMTP id 58A404066F for ; Sat, 23 May 2026 21:58:52 +0200 (CEST) Received: by mail-dy1-f181.google.com with SMTP id 5a478bee46e88-2ef2a1cc06dso13945894eec.0 for ; Sat, 23 May 2026 12:58:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20251104.gappssmtp.com; s=20251104; t=1779566331; x=1780171131; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=tWV6khu0w4x+J4ZN9pn34Np9by7/Yw3slW8qG814vqs=; b=TMUKsbLhMQMWxP4jWEYlox9yDMZrtlrkYZnVDZgbBFS7g7cGHPPyf5E3NevJIncHXX 9cNrnu/FZOscKyOVBebNo40COelBkXYe+VIglulfmkbdrzyiTIPs+kE2mEbAARLalxxz z61DHlTO2a55cPXknXptMY3ezj/+6NXoUsEOuP7Ygjl0mpaYBN6kxD0NV1KltUcJ5NuP ZTI/xi8m/7lVfOvWXo5OX2/40dC319/IOTFvwxcNqMPgC412hKWH3QWoKdxLnrToR7eW ewcE1shomYcV7oI6rERgIZrCJU9Mcng49rpsvxezZu83E0Hi2A52au71welEWYHASIV+ 8B7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779566331; x=1780171131; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=tWV6khu0w4x+J4ZN9pn34Np9by7/Yw3slW8qG814vqs=; b=pBh5581+CiZXnKTNhfa+FZaQCUuufcPuQmiM3U/zLE+rzdzIK7ezV9BZCHcDqqtMTT wTnmWzs/LqBYXJe8iTB3164pkaE3Eg2vqkzR83ZLtnc9ycMuXm6JOOwfNZ6QcZP/IB5w JlDpriinLF0I0Oi01K+RvfAC0V9QHt9aLkMcW6LWizf+msuUQv9pMwqccgNRRi9wKxb5 Yk7WAZrc0dgk5RCvxFXpH0/KnfxM0C4mJR9m8QGMgd8l5RVvyQmC+clkHWPsNRq2TVKN OvUwTjdz/zPea5OmQKsaYH2FoPUtRAg1V8VpkGIFEaHbAMipz/bfcW/wy2OQ4z43rJD4 bViQ== X-Gm-Message-State: AOJu0Yx0Geb2/noDZgemx0RwojOTybL3Mi00sNn1pn+v3zls/8oZH76+ aRMRjL5sEJJ3CkQGXiZxbFD0O3hE6BGfW88a9xdiLWlCWDbhomX7k9ZffX8t3InbjY/LcTv609m J2Ey5 X-Gm-Gg: Acq92OHJV/ILbymNwIzZkJ+3KWqImrtw+lElZlkdq+f58QnE4YMgEQvtMMl0vT2xXma GqnBMVaWgwsWIX1Wf/wrsV1DU2jUtI8G5fDXf19Kn53zxsayMjJiZsQu42q7MVY9yuht12Q8dKY oEI8RkFmlBUSqpbxkjRw3HqPhrPfdpe73VfHL9l5Alv4zHpr+ZC+yeFDTb7IUUKhtNskIxJTvGj N+4WjXF+cdotv0wtwCzmU4NLyEn+Ws9fbKgYSp3Y1bZp4mNwPXpKWixRPUf2+YF9SCIHPF+Ksra Ne53avLcoCjjie7KK0pOMZu5AJR6qAatHR2Trvgv9Q19q609bqIHbBXV/tZUFEUjCwNlXDbc0Gz caMrtG/yzYY1sRkL4zAlF0eaIC1ZavWTIB+CuK3rv2MZ0XEraGez/pWBUl/wtikN174Qdkn2iGE 8WpnhtmvLGHBCXPI8Jw2i7HRX1yc4YDWTZ5ugg0Vu9DieXmzIbJNeUmpKOHmTZEw== X-Received: by 2002:a05:7300:818a:b0:2ed:6f94:9d94 with SMTP id 5a478bee46e88-30449156e51mr4279261eec.19.1779566331423; Sat, 23 May 2026 12:58:51 -0700 (PDT) Received: from phoenix.lan (204-195-96-226.wavecable.com. [204.195.96.226]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30452255234sm4838428eec.20.2026.05.23.12.58.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 23 May 2026 12:58:51 -0700 (PDT) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , John Daley , Hyong Youb Kim , Bruce Richardson , Konstantin Ananyev Subject: [PATCH v3 09/27] net/enic: do not use deprecated rte_atomic64 Date: Sat, 23 May 2026 12:56:23 -0700 Message-ID: <20260523195839.454952-10-stephen@networkplumber.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260523195839.454952-1-stephen@networkplumber.org> References: <20260521042043.1590536-1-stephen@networkplumber.org> <20260523195839.454952-1-stephen@networkplumber.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 The rte_atomic64 datatype and functions are deprecated. This driver was only using it for error statistics where atomic is not necessary. The DPDK PMD model is that statistics do not have to be exact in face of contention. Signed-off-by: Stephen Hemminger --- drivers/net/enic/enic.h | 6 +++--- drivers/net/enic/enic_compat.h | 1 - drivers/net/enic/enic_main.c | 17 +++++++---------- drivers/net/enic/enic_rxtx.c | 14 ++++++-------- drivers/net/enic/enic_rxtx_vec_avx2.c | 4 ++-- 5 files changed, 18 insertions(+), 24 deletions(-) diff --git a/drivers/net/enic/enic.h b/drivers/net/enic/enic.h index 87f6b35fcd..0a8d4a29ca 100644 --- a/drivers/net/enic/enic.h +++ b/drivers/net/enic/enic.h @@ -59,9 +59,9 @@ #define ENICPMD_RXQ_INTR_OFFSET 1 struct enic_soft_stats { - rte_atomic64_t rx_nombuf; - rte_atomic64_t rx_packet_errors; - rte_atomic64_t tx_oversized; + uint64_t rx_nombuf; + uint64_t rx_packet_errors; + uint64_t tx_oversized; }; struct enic_memzone_entry { diff --git a/drivers/net/enic/enic_compat.h b/drivers/net/enic/enic_compat.h index 7cff6831b9..3ce4299e81 100644 --- a/drivers/net/enic/enic_compat.h +++ b/drivers/net/enic/enic_compat.h @@ -9,7 +9,6 @@ #include #include -#include #include #include #include diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c index 2696fa77d4..fb9a5754c9 100644 --- a/drivers/net/enic/enic_main.c +++ b/drivers/net/enic/enic_main.c @@ -83,17 +83,15 @@ static void enic_log_q_error(struct enic *enic) static void enic_clear_soft_stats(struct enic *enic) { struct enic_soft_stats *soft_stats = &enic->soft_stats; - rte_atomic64_clear(&soft_stats->rx_nombuf); - rte_atomic64_clear(&soft_stats->rx_packet_errors); - rte_atomic64_clear(&soft_stats->tx_oversized); + + memset(soft_stats, 0, sizeof(*soft_stats)); } static void enic_init_soft_stats(struct enic *enic) { struct enic_soft_stats *soft_stats = &enic->soft_stats; - rte_atomic64_init(&soft_stats->rx_nombuf); - rte_atomic64_init(&soft_stats->rx_packet_errors); - rte_atomic64_init(&soft_stats->tx_oversized); + + memset(soft_stats, 0, sizeof(*soft_stats)); enic_clear_soft_stats(enic); } @@ -132,7 +130,7 @@ int enic_dev_stats_get(struct enic *enic, struct rte_eth_stats *r_stats, * counted in ibytes even though truncated packets are dropped * which can make ibytes be slightly higher than it should be. */ - rx_packet_errors = rte_atomic64_read(&soft_stats->rx_packet_errors); + rx_packet_errors = soft_stats->rx_packet_errors; rx_truncated = rx_packet_errors - stats->rx.rx_errors; r_stats->ipackets = stats->rx.rx_frames_ok - rx_truncated; @@ -142,12 +140,11 @@ int enic_dev_stats_get(struct enic *enic, struct rte_eth_stats *r_stats, r_stats->obytes = stats->tx.tx_bytes_ok; r_stats->ierrors = stats->rx.rx_errors + stats->rx.rx_drop; - r_stats->oerrors = stats->tx.tx_errors - + rte_atomic64_read(&soft_stats->tx_oversized); + r_stats->oerrors = stats->tx.tx_errors + soft_stats->tx_oversized; r_stats->imissed = stats->rx.rx_no_bufs + rx_truncated; - r_stats->rx_nombuf = rte_atomic64_read(&soft_stats->rx_nombuf); + r_stats->rx_nombuf = soft_stats->rx_nombuf; return 0; } diff --git a/drivers/net/enic/enic_rxtx.c b/drivers/net/enic/enic_rxtx.c index 549a153332..c87d947b93 100644 --- a/drivers/net/enic/enic_rxtx.c +++ b/drivers/net/enic/enic_rxtx.c @@ -112,7 +112,7 @@ enic_recv_pkts_common(void *rx_queue, struct rte_mbuf **rx_pkts, /* allocate a new mbuf */ nmb = rte_mbuf_raw_alloc(rq->mp); if (nmb == NULL) { - rte_atomic64_inc(&enic->soft_stats.rx_nombuf); + ++enic->soft_stats.rx_nombuf; break; } @@ -185,7 +185,7 @@ enic_recv_pkts_common(void *rx_queue, struct rte_mbuf **rx_pkts, } if (unlikely(packet_error)) { rte_pktmbuf_free(first_seg); - rte_atomic64_inc(&enic->soft_stats.rx_packet_errors); + ++enic->soft_stats.rx_packet_errors; continue; } @@ -303,7 +303,7 @@ enic_noscatter_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, if (unlikely(cqd->bytes_written_flags & CQ_ENET_RQ_DESC_FLAGS_TRUNCATED)) { rte_pktmbuf_free(*rxmb++); - rte_atomic64_inc(&enic->soft_stats.rx_packet_errors); + ++enic->soft_stats.rx_packet_errors; cqd++; continue; } @@ -505,14 +505,12 @@ uint16_t enic_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint8_t offload_mode; uint16_t header_len; uint64_t tso; - rte_atomic64_t *tx_oversized; enic_cleanup_wq(enic, wq); wq_desc_avail = vnic_wq_desc_avail(wq); head_idx = wq->head_idx; desc_count = wq->ring.desc_count; ol_flags_mask = RTE_MBUF_F_TX_VLAN | RTE_MBUF_F_TX_IP_CKSUM | RTE_MBUF_F_TX_L4_MASK; - tx_oversized = &enic->soft_stats.tx_oversized; nb_pkts = RTE_MIN(nb_pkts, ENIC_TX_XMIT_MAX); @@ -527,7 +525,7 @@ uint16_t enic_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, /* drop packet if it's too big to send */ if (unlikely(!tso && pkt_len > ENIC_TX_MAX_PKT_SIZE)) { rte_pktmbuf_free(tx_pkt); - rte_atomic64_inc(tx_oversized); + ++enic->soft_stats.tx_oversized; continue; } @@ -558,7 +556,7 @@ uint16_t enic_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, if (unlikely(header_len == 0 || ((tx_pkt->tso_segsz + header_len) > ENIC_TX_MAX_PKT_SIZE))) { rte_pktmbuf_free(tx_pkt); - rte_atomic64_inc(tx_oversized); + ++enic->soft_stats.tx_oversized; continue; } @@ -681,7 +679,7 @@ static void enqueue_simple_pkts(struct rte_mbuf **pkts, */ if (unlikely(p->pkt_len > ENIC_TX_MAX_PKT_SIZE)) { desc->length = ENIC_TX_MAX_PKT_SIZE; - rte_atomic64_inc(&enic->soft_stats.tx_oversized); + ++enic->soft_stats.tx_oversized; } desc++; } diff --git a/drivers/net/enic/enic_rxtx_vec_avx2.c b/drivers/net/enic/enic_rxtx_vec_avx2.c index 600efff270..53589ab788 100644 --- a/drivers/net/enic/enic_rxtx_vec_avx2.c +++ b/drivers/net/enic/enic_rxtx_vec_avx2.c @@ -81,7 +81,7 @@ enic_noscatter_vec_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, if (unlikely(cqd->bytes_written_flags & CQ_ENET_RQ_DESC_FLAGS_TRUNCATED)) { rte_pktmbuf_free(*rxmb++); - rte_atomic64_inc(&enic->soft_stats.rx_packet_errors); + ++enic->soft_stats.rx_packet_errors; } else { *rx++ = rx_one(cqd, *rxmb++, enic); } @@ -761,7 +761,7 @@ enic_noscatter_vec_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, if (unlikely(cqd->bytes_written_flags & CQ_ENET_RQ_DESC_FLAGS_TRUNCATED)) { rte_pktmbuf_free(*rxmb++); - rte_atomic64_inc(&enic->soft_stats.rx_packet_errors); + ++enic->soft_stats.rx_packet_errors; } else { *rx++ = rx_one(cqd, *rxmb++, enic); } -- 2.53.0