From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 4B10EA046B for ; Fri, 26 Jul 2019 12:22:44 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D9C611C43D; Fri, 26 Jul 2019 12:22:05 +0200 (CEST) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 1D1FC1C444; Fri, 26 Jul 2019 12:21:52 +0200 (CEST) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 7FC473079B62; Fri, 26 Jul 2019 10:21:51 +0000 (UTC) Received: from dmarchan.remote.csb (ovpn-204-235.brq.redhat.com [10.40.204.235]) by smtp.corp.redhat.com (Postfix) with ESMTP id 42A4151; Fri, 26 Jul 2019 10:21:50 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: ferruh.yigit@intel.com, stable@dpdk.org, Bruce Richardson Date: Fri, 26 Jul 2019 12:21:27 +0200 Message-Id: <1564136488-29065-9-git-send-email-david.marchand@redhat.com> In-Reply-To: <1564136488-29065-1-git-send-email-david.marchand@redhat.com> References: <1564046068-21905-1-git-send-email-david.marchand@redhat.com> <1564136488-29065-1-git-send-email-david.marchand@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.41]); Fri, 26 Jul 2019 10:21:51 +0000 (UTC) Subject: [dpdk-dev] [PATCH v2 8/9] net/ring: do not count unsent packets as errors X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" err_pkts reflects the number of packets that the driver did not manage to send. This is a temporary situation, those packets are not freed and the application can still retry to send them later. Hence, we can't count them as transmit failed. Fixes: e1e4017751f1 ("ring: add new driver") Cc: stable@dpdk.org Signed-off-by: David Marchand --- Changelog since v1: - dropped the err_pkts counter entirely as nothing reports it --- drivers/net/ring/rte_eth_ring.c | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c index eb347bc..634da63 100644 --- a/drivers/net/ring/rte_eth_ring.c +++ b/drivers/net/ring/rte_eth_ring.c @@ -41,7 +41,6 @@ struct ring_queue { struct rte_ring *rng; rte_atomic64_t rx_pkts; rte_atomic64_t tx_pkts; - rte_atomic64_t err_pkts; }; struct pmd_internals { @@ -89,13 +88,10 @@ eth_ring_tx(void *q, struct rte_mbuf **bufs, uint16_t nb_bufs) struct ring_queue *r = q; const uint16_t nb_tx = (uint16_t)rte_ring_enqueue_burst(r->rng, ptrs, nb_bufs, NULL); - if (r->rng->flags & RING_F_SP_ENQ) { + if (r->rng->flags & RING_F_SP_ENQ) r->tx_pkts.cnt += nb_tx; - r->err_pkts.cnt += nb_bufs - nb_tx; - } else { + else rte_atomic64_add(&(r->tx_pkts), nb_tx); - rte_atomic64_add(&(r->err_pkts), nb_bufs - nb_tx); - } return nb_tx; } @@ -172,7 +168,7 @@ static int eth_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats) { unsigned int i; - unsigned long rx_total = 0, tx_total = 0, tx_err_total = 0; + unsigned long rx_total = 0, tx_total = 0; const struct pmd_internals *internal = dev->data->dev_private; for (i = 0; i < RTE_ETHDEV_QUEUE_STAT_CNTRS && @@ -185,12 +181,10 @@ eth_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats) i < dev->data->nb_tx_queues; i++) { stats->q_opackets[i] = internal->tx_ring_queues[i].tx_pkts.cnt; tx_total += stats->q_opackets[i]; - tx_err_total += internal->tx_ring_queues[i].err_pkts.cnt; } stats->ipackets = rx_total; stats->opackets = tx_total; - stats->oerrors = tx_err_total; return 0; } @@ -203,10 +197,8 @@ eth_stats_reset(struct rte_eth_dev *dev) for (i = 0; i < dev->data->nb_rx_queues; i++) internal->rx_ring_queues[i].rx_pkts.cnt = 0; - for (i = 0; i < dev->data->nb_tx_queues; i++) { + for (i = 0; i < dev->data->nb_tx_queues; i++) internal->tx_ring_queues[i].tx_pkts.cnt = 0; - internal->tx_ring_queues[i].err_pkts.cnt = 0; - } } static void -- 1.8.3.1