From patchwork Thu Feb 16 18:10:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Levend Sayar X-Patchwork-Id: 124090 X-Patchwork-Delegate: ferruh.yigit@amd.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 AB49941CB3; Thu, 16 Feb 2023 19:10:32 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6286F42D1D; Thu, 16 Feb 2023 19:10:32 +0100 (CET) Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.46]) by mails.dpdk.org (Postfix) with ESMTP id 775BA42D1A for ; Thu, 16 Feb 2023 19:10:30 +0100 (CET) Received: by mail-wr1-f46.google.com with SMTP id l2so2744673wry.0 for ; Thu, 16 Feb 2023 10:10:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=DHi2DorVbD5+sbrW81lSot5aof1GLvr0AeJnNdmg3vw=; b=XOlG41tauYgoTQrfbd2PCbw13rtv36nb6cc+ZI9tbC9YBa3LCsFn+F12+jsJYw6fBB o5RxkQNgd2wOwgL8geN5tVar16blrurn8VwAqbGyyQz9r9PxzP1mZr18ySBthg31qWW4 nrG1/tRoIFl/LQgYH4ToN8nYpuMbyCm73hQ1Qqog21+Tt/3YKaBrae6LOGSjxnHS9TI1 8hU6EtXnhSGqzXjcsShdwIt4MQ3uhFir8mDUMzveDzcIcCCpkLiJ4TfKWTZGtCt9kM2A RpIP+spYZQuvPLA9wWYX/2Zzch8vMBx1BWCru/SRoTnXfayZhXJiNfCacGNbkfZMo4CI 8sNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=DHi2DorVbD5+sbrW81lSot5aof1GLvr0AeJnNdmg3vw=; b=Le19XO6uNbD6MJ7bEa6jPeNdPw7NfWPBOdJQCnMDEjXwW4J3zvlTm2HMY7PCbZRLIY 92lmVmbm8z2bULkKB4zUTt2Z3yTJUplLAgSg8kKhF9gSv0CxBcDSjhJZFx45WwQnHotU mhDqz/SVM2QWIlFhEh4TUOcisScwvoOHafxzifF6QtmPxDwtj+fhQudc6Tiu9kjdeVLB +fxPt6++BxrocCAdpTYc23fdE3uffyQHUA3A5qjIHG17sVmqJJDWtZf9jQ6ZQQC1ZmFp 4jzMoi0bZQRck6XH8YarIaIgTwDfPHQMUAQ98ReceGWd2BSd+w6zLg/oP+ztVJYEGKIt yfFw== X-Gm-Message-State: AO0yUKUB1quTDRzFM+8QmAIC7uxcNACY3Rar9QyxBEWKICYsD4L0gjZH EDntHOZcphLoEYTtjtQDQlnajYE2Nto= X-Google-Smtp-Source: AK7set9KeufhEKsLKL96z8zXUJtvWP4TmK3rKl3PCbopTRU8NxWISdCWYC1UOOVTbliHzPuxS1Yt1Q== X-Received: by 2002:a5d:6812:0:b0:2c5:5bc0:e7af with SMTP id w18-20020a5d6812000000b002c55bc0e7afmr5207626wru.3.1676571030171; Thu, 16 Feb 2023 10:10:30 -0800 (PST) Received: from localhost.localdomain ([176.41.28.141]) by smtp.gmail.com with ESMTPSA id x16-20020adfdcd0000000b002c54d97b1ecsm1989679wrm.72.2023.02.16.10.10.29 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 16 Feb 2023 10:10:29 -0800 (PST) From: Levend Sayar To: junfeng.guo@intel.com Cc: dev@dpdk.org, Levend Sayar Subject: [PATCH v2 1/4] net/gve: change offloading capability Date: Thu, 16 Feb 2023 21:10:22 +0300 Message-Id: <20230216181025.23485-1-levendsayar@gmail.com> X-Mailer: git-send-email 2.37.1 (Apple Git-137.1) 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 Google Virtual NIC is not doing IPv4 checksummimg. Removed that capability from PMD. Signed-off-by: Levend Sayar --- drivers/net/gve/gve_ethdev.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/net/gve/gve_ethdev.c b/drivers/net/gve/gve_ethdev.c index 97781f0ed3..e357f16e16 100644 --- a/drivers/net/gve/gve_ethdev.c +++ b/drivers/net/gve/gve_ethdev.c @@ -282,7 +282,6 @@ gve_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) dev_info->rx_offload_capa = 0; dev_info->tx_offload_capa = RTE_ETH_TX_OFFLOAD_MULTI_SEGS | - RTE_ETH_TX_OFFLOAD_IPV4_CKSUM | RTE_ETH_TX_OFFLOAD_UDP_CKSUM | RTE_ETH_TX_OFFLOAD_TCP_CKSUM | RTE_ETH_TX_OFFLOAD_SCTP_CKSUM | From patchwork Thu Feb 16 18:10:23 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Levend Sayar X-Patchwork-Id: 124091 X-Patchwork-Delegate: ferruh.yigit@amd.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 8213841CB3; Thu, 16 Feb 2023 19:11:02 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6F24A42DAA; Thu, 16 Feb 2023 19:11:02 +0100 (CET) Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com [209.85.221.54]) by mails.dpdk.org (Postfix) with ESMTP id 560D842DA9 for ; Thu, 16 Feb 2023 19:11:01 +0100 (CET) Received: by mail-wr1-f54.google.com with SMTP id bu23so2677188wrb.8 for ; Thu, 16 Feb 2023 10:11:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; 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=G5yohdO+HHjIZwuKr4e/pLGsPoeckoBOLOW3++tfRJo=; b=G5/7ByatFUTrOQFy4TTQxqoBsjiKmcCDjTmZw0fFb844+qO0heU6WLgAv7CfTGZbyM pkqZgzuo3/2i22bkUE0T2q3w2PbQOz5ir1d+9Cz3NLwCpI3PYQTPTzqzPKTVaKoS61yi czLS8jTz3Oy0MTSR/Z4VsbXPScYi76ewL930ckCDc1Gy6eF9l9yTCU+mqqPyRB8N4q8b lJykfCMtsjVkVgbd/TIPw4XAy33e0+2YrYARYFJ5tIuKktnBRxWgKwzFYcBbhMxKI5GW See/SFDy0q/GLWKsjENsyTtFmEfOeBEpoo8E9dz0eD7SxtUKgwT33uKFxWxsSEC1i2OH oSbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=G5yohdO+HHjIZwuKr4e/pLGsPoeckoBOLOW3++tfRJo=; b=EKWTZ3QZ8v3oy9NuQNj1XIUIjguAl8a7C4qbuOJaKOT5m1LUM3WZjrfC6C3szy+caJ nzJrX3s8G3YIsBlBT2gsIsSxfkaQOFF4QLj0JzUX6ug1/GXKSEfP7TFo4kiBFOfEY1Yz GMqRgFIgrrvR2QLlWCV9E81T9c5Cj/JWwU7eOs7+KpAN2A1ni/rgazT2e8iRV3u5jOhu IX04jOYUsN/yzCK+EQJDsclu/RZZmXr8NMJQwb+uU+pKRn/H6VZdMg4/ohn9U5cSo2y/ b3h4lbfFbr2Arbo98bRTo0Z47706H3GJKUgX+Q2hvLv9nGo2I6yvuT1BfxJCbQQ3ljSJ Fmrg== X-Gm-Message-State: AO0yUKWg/cJRcpme2VQ9NsmjIgCoYEbXZF13+53wjnLdtioMPqn7vj9/ pklnRvLRkwmMJAaX8kiNaMs= X-Google-Smtp-Source: AK7set96JSvNVpq2G2MbylySsPrwXUY9sqefdp9IiYQpaF/YWE+FiQGBIJyCRY39tbPB5yrshPqKKQ== X-Received: by 2002:adf:f18c:0:b0:2c5:5d11:fa52 with SMTP id h12-20020adff18c000000b002c55d11fa52mr5550117wro.15.1676571061005; Thu, 16 Feb 2023 10:11:01 -0800 (PST) Received: from localhost.localdomain ([176.41.28.141]) by smtp.gmail.com with ESMTPSA id x16-20020adfdcd0000000b002c54d97b1ecsm1989679wrm.72.2023.02.16.10.11.00 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 16 Feb 2023 10:11:00 -0800 (PST) From: Levend Sayar To: junfeng.guo@intel.com Cc: dev@dpdk.org, Levend Sayar Subject: [PATCH v2 2/4] net/gve: add standard and extended statistics Date: Thu, 16 Feb 2023 21:10:23 +0300 Message-Id: <20230216181025.23485-2-levendsayar@gmail.com> X-Mailer: git-send-email 2.37.1 (Apple Git-137.1) In-Reply-To: <20230216181025.23485-1-levendsayar@gmail.com> References: <20230216181025.23485-1-levendsayar@gmail.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 Google Virtual NIC PMD is enriched with statistics info. Signed-off-by: Levend Sayar --- drivers/net/gve/gve_ethdev.c | 147 ++++++++++++++++++++++++++++++++++- drivers/net/gve/gve_ethdev.h | 11 +++ drivers/net/gve/gve_rx.c | 18 ++++- drivers/net/gve/gve_tx.c | 6 ++ 4 files changed, 175 insertions(+), 7 deletions(-) diff --git a/drivers/net/gve/gve_ethdev.c b/drivers/net/gve/gve_ethdev.c index e357f16e16..735847ede7 100644 --- a/drivers/net/gve/gve_ethdev.c +++ b/drivers/net/gve/gve_ethdev.c @@ -266,7 +266,7 @@ gve_dev_close(struct rte_eth_dev *dev) } static int -gve_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) +gve_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) { struct gve_priv *priv = dev->data->dev_private; @@ -319,7 +319,7 @@ gve_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) } static int -gve_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu) +gve_mtu_set(struct rte_eth_dev *dev, uint16_t mtu) { struct gve_priv *priv = dev->data->dev_private; int err; @@ -345,18 +345,157 @@ gve_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu) return 0; } +static int +gve_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats) +{ + uint16_t i; + struct rte_eth_stats tmp; + + memset(&tmp, 0, sizeof(tmp)); + + for (i = 0; i < dev->data->nb_rx_queues; i++) { + struct gve_rx_queue *rxq = dev->data->rx_queues[i]; + tmp.ipackets += rxq->packets; + tmp.ibytes += rxq->bytes; + tmp.ierrors += rxq->errors; + tmp.rx_nombuf += rxq->no_mbufs; + } + + for (i = 0; i < dev->data->nb_tx_queues; i++) { + struct gve_tx_queue *txq = dev->data->tx_queues[i]; + tmp.opackets += txq->packets; + tmp.obytes += txq->bytes; + tmp.oerrors += txq->errors; + } + + *stats = tmp; + return 0; +} + +static int +gve_stats_reset(struct rte_eth_dev *dev) +{ + uint16_t i; + + for (i = 0; i < dev->data->nb_rx_queues; i++) { + struct gve_rx_queue *rxq = dev->data->rx_queues[i]; + rxq->packets = 0; + rxq->bytes = 0; + rxq->errors = 0; + rxq->no_mbufs = 0; + } + + for (i = 0; i < dev->data->nb_tx_queues; i++) { + struct gve_tx_queue *txq = dev->data->tx_queues[i]; + txq->packets = 0; + txq->bytes = 0; + txq->errors = 0; + } + + return 0; +} + +static int +gve_xstats_get(struct rte_eth_dev *dev, struct rte_eth_xstat *xstats, unsigned int n) +{ + if (xstats) { + uint requested = n; + uint64_t indx = 0; + struct rte_eth_xstat *xstat = xstats; + uint16_t i; + + for (i = 0; i < dev->data->nb_rx_queues; i++) { + struct gve_rx_queue *rxq = dev->data->rx_queues[i]; + xstat->id = indx++; + xstat->value = rxq->packets; + if (--requested == 0) + return n; + xstat++; + + xstat->id = indx++; + xstat->value = rxq->bytes; + if (--requested == 0) + return n; + xstat++; + } + + for (i = 0; i < dev->data->nb_tx_queues; i++) { + struct gve_tx_queue *txq = dev->data->tx_queues[i]; + xstat->id = indx++; + xstat->value = txq->packets; + if (--requested == 0) + return n; + xstat++; + + xstat->id = indx++; + xstat->value = txq->bytes; + if (--requested == 0) + return n; + xstat++; + } + } + + return (dev->data->nb_tx_queues + dev->data->nb_rx_queues) * 2; +} + +static int +gve_xstats_reset(struct rte_eth_dev *dev) +{ + return gve_stats_reset(dev); +} + +static int +gve_xstats_get_names(struct rte_eth_dev *dev, struct rte_eth_xstat_name *xstats_names, + unsigned int n) +{ + if (xstats_names) { + uint requested = n; + struct rte_eth_xstat_name *xstats_name = xstats_names; + uint16_t i; + + for (i = 0; i < dev->data->nb_rx_queues; i++) { + snprintf(xstats_name->name, sizeof(xstats_name->name), "rx_q%d_packets", i); + if (--requested == 0) + return n; + xstats_name++; + snprintf(xstats_name->name, sizeof(xstats_name->name), "rx_q%d_bytes", i); + if (--requested == 0) + return n; + xstats_name++; + } + + for (i = 0; i < dev->data->nb_tx_queues; i++) { + snprintf(xstats_name->name, sizeof(xstats_name->name), "tx_q%d_packets", i); + if (--requested == 0) + return n; + xstats_name++; + snprintf(xstats_name->name, sizeof(xstats_name->name), "tx_q%d_bytes", i); + if (--requested == 0) + return n; + xstats_name++; + } + } + + return (dev->data->nb_tx_queues + dev->data->nb_rx_queues) * 2; +} + static const struct eth_dev_ops gve_eth_dev_ops = { .dev_configure = gve_dev_configure, .dev_start = gve_dev_start, .dev_stop = gve_dev_stop, .dev_close = gve_dev_close, - .dev_infos_get = gve_dev_info_get, + .dev_infos_get = gve_dev_infos_get, .rx_queue_setup = gve_rx_queue_setup, .tx_queue_setup = gve_tx_queue_setup, .rx_queue_release = gve_rx_queue_release, .tx_queue_release = gve_tx_queue_release, .link_update = gve_link_update, - .mtu_set = gve_dev_mtu_set, + .mtu_set = gve_mtu_set, + .stats_get = gve_stats_get, + .stats_reset = gve_stats_reset, + .xstats_get = gve_xstats_get, + .xstats_reset = gve_xstats_reset, + .xstats_get_names = gve_xstats_get_names, }; static void diff --git a/drivers/net/gve/gve_ethdev.h b/drivers/net/gve/gve_ethdev.h index 235e55899e..70210570a2 100644 --- a/drivers/net/gve/gve_ethdev.h +++ b/drivers/net/gve/gve_ethdev.h @@ -81,6 +81,11 @@ struct gve_tx_queue { uint32_t next_to_clean; uint16_t free_thresh; + /* stats */ + uint64_t packets; + uint64_t bytes; + uint64_t errors; + /* Only valid for DQO_QPL queue format */ uint16_t sw_tail; uint16_t sw_ntc; @@ -124,6 +129,12 @@ struct gve_rx_queue { uint32_t next_avail; uint32_t nb_avail; + /* stats */ + uint64_t packets; + uint64_t bytes; + uint64_t errors; + uint64_t no_mbufs; + volatile rte_be32_t *qrx_tail; volatile rte_be32_t *ntfy_addr; diff --git a/drivers/net/gve/gve_rx.c b/drivers/net/gve/gve_rx.c index 518c9d109c..4643f9f47a 100644 --- a/drivers/net/gve/gve_rx.c +++ b/drivers/net/gve/gve_rx.c @@ -22,8 +22,10 @@ gve_rx_refill(struct gve_rx_queue *rxq) if (diag < 0) { for (i = 0; i < nb_alloc; i++) { nmb = rte_pktmbuf_alloc(rxq->mpool); - if (!nmb) + if (!nmb) { + rxq->no_mbufs++; break; + } rxq->sw_ring[idx + i] = nmb; } if (i != nb_alloc) @@ -55,8 +57,10 @@ gve_rx_refill(struct gve_rx_queue *rxq) if (diag < 0) { for (i = 0; i < nb_alloc; i++) { nmb = rte_pktmbuf_alloc(rxq->mpool); - if (!nmb) + if (!nmb) { + rxq->no_mbufs++; break; + } rxq->sw_ring[idx + i] = nmb; } nb_alloc = i; @@ -90,6 +94,7 @@ gve_rx_burst(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts) uint16_t nb_rx, len; uint64_t addr; uint16_t i; + uint64_t total_len = 0; rxr = rxq->rx_desc_ring; nb_rx = 0; @@ -99,10 +104,13 @@ gve_rx_burst(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts) if (GVE_SEQNO(rxd->flags_seq) != rxq->expected_seqno) break; - if (rxd->flags_seq & GVE_RXF_ERR) + if (rxd->flags_seq & GVE_RXF_ERR) { + rxq->errors++; continue; + } len = rte_be_to_cpu_16(rxd->len) - GVE_RX_PAD; + total_len += len; rxe = rxq->sw_ring[rx_id]; if (rxq->is_gqi_qpl) { addr = (uint64_t)(rxq->qpl->mz->addr) + rx_id * PAGE_SIZE + GVE_RX_PAD; @@ -138,6 +146,10 @@ gve_rx_burst(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts) nb_rx++; } + /* update stats */ + rxq->packets += nb_rx; + rxq->bytes += total_len; + rxq->nb_avail += nb_rx; rxq->rx_tail = rx_id; diff --git a/drivers/net/gve/gve_tx.c b/drivers/net/gve/gve_tx.c index bf4e8fea2c..d4e52e3ea5 100644 --- a/drivers/net/gve/gve_tx.c +++ b/drivers/net/gve/gve_tx.c @@ -262,6 +262,7 @@ gve_tx_burst_qpl(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) uint16_t nb_used, i; uint16_t nb_tx = 0; uint32_t hlen; + uint64_t total_len = 0; txr = txq->tx_desc_ring; @@ -299,6 +300,7 @@ gve_tx_burst_qpl(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) hlen = ol_flags & RTE_MBUF_F_TX_TCP_SEG ? (uint32_t)(tx_offload.l2_len + tx_offload.l3_len + tx_offload.l4_len) : tx_pkt->pkt_len; + total_len += hlen; sw_ring[sw_id] = tx_pkt; if (!is_fifo_avail(txq, hlen)) { @@ -364,6 +366,10 @@ gve_tx_burst_qpl(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) txq->sw_tail = sw_id; } + /* update stats */ + txq->packets += nb_tx; + txq->bytes += total_len; + return nb_tx; } From patchwork Thu Feb 16 18:10:24 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Levend Sayar X-Patchwork-Id: 124092 X-Patchwork-Delegate: ferruh.yigit@amd.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 31DBF41CB3; Thu, 16 Feb 2023 19:11:07 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A440342DC8; Thu, 16 Feb 2023 19:11:05 +0100 (CET) Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) by mails.dpdk.org (Postfix) with ESMTP id 65DA642F84 for ; Thu, 16 Feb 2023 19:11:04 +0100 (CET) Received: by mail-wr1-f47.google.com with SMTP id l2so2746105wry.0 for ; Thu, 16 Feb 2023 10:11:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; 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=pOX80VW9umavyEdJ9qtyqhcKYgqd6d4yxA3QyCb7T4Y=; b=PMAXUOUKL0HPbwI7SI/fAk2QpW2UtB4Q/y9ZfpVKjIOmwADqxXogFStbtKiNvi+5sM Z7ZKXRVqu/9vEh1MilkZgvy6c52h8QWTXXRZnq54nL4N2Jb7YWU2XVdP3nAXAx9OcluQ niGsGStJoNz0BXuqWtv8ViukSyOvn6UmraPnS0V5ItXzKATNi2s1Jkr1iomEoRNLTDHX F6nMIprZVn5IYR7U5iAr5yuL8FyPPYm2cJ2HCzSrtHYeoXJJC4ou+v1/F4vWZ3/kHmo2 4l2dFLP30iic91XAichOfFV+53/XIuerRGX70neng1lAm/1HUbEiNMxINQrBOxkG6cGB ojNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pOX80VW9umavyEdJ9qtyqhcKYgqd6d4yxA3QyCb7T4Y=; b=Jeik4bsWVaas/KrNm5YDyL7BdeBmN8obuYFtwhVDBacaleV2wvCZhZhj0n0wPFI4Nd 3JCn3TmO2cBVq/vtYTYbkzLkc1xR+c5wdY2i7ZqfTtNHeaQ78MFT/jbCIIE7KajNQw0y jjI77+w+Sj4SXmI4Mhf9UuoFhrZMzKjWYkcbKZeeJoPUSSl5gSHSJY1sNeImmZpA9EwS yVd53QPbKKgpQ0giPcOp5FKKOOz9t1VBzes5B57dpXOzW6pAQ6tEqCjTruhm+95vuvRl +Pl69+KJ7Q3YOGdwhFmXyOC7qEnZBQ9655pjNq6m/8OOi3vwVBpEk15HKpbpU3nqQQqk jorQ== X-Gm-Message-State: AO0yUKVFrNCy4RHSktVJPJ1O088uhcFwtjbBZ3n2VOeGPz97gf/wgdwq 6ichZv2CdIZ2nlsacInswzc= X-Google-Smtp-Source: AK7set9XWFzL1QLjqDoABKDT0wx8lUgqMNApJI6opXZn6Q/pQ6dPBYgkPOe73bVkh3XvOHHUUyKK0Q== X-Received: by 2002:a05:6000:1b08:b0:2c5:5312:e81b with SMTP id f8-20020a0560001b0800b002c55312e81bmr4810809wrz.28.1676571064146; Thu, 16 Feb 2023 10:11:04 -0800 (PST) Received: from localhost.localdomain ([176.41.28.141]) by smtp.gmail.com with ESMTPSA id x16-20020adfdcd0000000b002c54d97b1ecsm1989679wrm.72.2023.02.16.10.11.03 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 16 Feb 2023 10:11:03 -0800 (PST) From: Levend Sayar To: junfeng.guo@intel.com Cc: dev@dpdk.org, Levend Sayar Subject: [PATCH v2 3/4] net/gve: add standard and extended statistics Date: Thu, 16 Feb 2023 21:10:24 +0300 Message-Id: <20230216181025.23485-3-levendsayar@gmail.com> X-Mailer: git-send-email 2.37.1 (Apple Git-137.1) In-Reply-To: <20230216181025.23485-1-levendsayar@gmail.com> References: <20230216181025.23485-1-levendsayar@gmail.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 TX side statistics is updated. Signed-off-by: Levend Sayar --- drivers/net/gve/gve_tx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/net/gve/gve_tx.c b/drivers/net/gve/gve_tx.c index d4e52e3ea5..5c8a3b4379 100644 --- a/drivers/net/gve/gve_tx.c +++ b/drivers/net/gve/gve_tx.c @@ -364,11 +364,11 @@ gve_tx_burst_qpl(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) rte_write32(rte_cpu_to_be_32(tx_tail), txq->qtx_tail); txq->tx_tail = tx_tail; txq->sw_tail = sw_id; - } - /* update stats */ - txq->packets += nb_tx; - txq->bytes += total_len; + /* update stats */ + txq->packets += nb_tx; + txq->bytes += total_len; + } return nb_tx; } From patchwork Thu Feb 16 18:10:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Levend Sayar X-Patchwork-Id: 124093 X-Patchwork-Delegate: ferruh.yigit@amd.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 BE3A341CB3; Thu, 16 Feb 2023 19:11:12 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CC74442F8C; Thu, 16 Feb 2023 19:11:08 +0100 (CET) Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) by mails.dpdk.org (Postfix) with ESMTP id 3E36B42F8A for ; Thu, 16 Feb 2023 19:11:07 +0100 (CET) Received: by mail-wr1-f42.google.com with SMTP id o15so2671883wrc.9 for ; Thu, 16 Feb 2023 10:11:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; 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=Oppuw8KotV7UBXPe8HyebM/9M7japcec//WQbunru3k=; b=hdfDS5wI1lIGeZgDncdoSYmpx3ww7A6FJmTHHO7Ug+cdpV5RbMQfdGo2BorHdVUnH7 lJaFW1m4zSYF9COda6w6ogksr88P5v4iPfJzQzsPMoyfSsqn46gWC4povK3Hq8dWN+d2 uiN2sRnMAv3kHOHVRhZSmibaIGcNgyGhMhVauA09xIbYQzIj6W0PvRKGc4buzqkRehr/ 6OHGr1+dGzDmdUSHQT+dPXigSHcDN0DFTWE39HwOVEpsQ8OZ5vgkJz6ca8RK4sJ34kwQ 73AXTR5KVuyU/2HpKiMBCgWXi70lmHzXqTCR21TIeG4YaCy4FyUpGR1ZxMgIH10mkjC/ jzTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Oppuw8KotV7UBXPe8HyebM/9M7japcec//WQbunru3k=; b=6KDxUcZL+XX3YD9ww05jkQ4BI3dayVMrggal3MO58L5D0IBEK59Yu9KzB3oJsRzg7i C43ems8wieBmziX7706gL4mZeen5QCG8dQ3WflutoxrxMZO2WWcBTBAOIU4xIJVDsWuK feqz4sEMKQeAjkS4W5zT5+CoOu1/+K8oq3G3fgrRdukxZRqOd7AVzS+CJDugub4zZnoV 5/b1DIA0cdQVP/18mhczD7Pb5+o8VB5F1VWrfBn3KdKS5Ko5F8WevRkoJNJQMvmvXWCL S2YVzmD1R/4a5JxKcYQ7b3yXCgiOYli+1YrzfvTSy/0Q0l9dClVG49cADkHHRU4Vxu8h sKLA== X-Gm-Message-State: AO0yUKVkX7IG2eTwMuRNBKl6SJyfoPWqzU+TujhJPIjAtySl7MIXGxuw w3/ouzaaE+VTAGBnZmc29Z8= X-Google-Smtp-Source: AK7set/htZeCjFEBgggVXYuH1ZWZgB+c36NBaNxe5kLezke0JEWE3h+Eb8r3aR5KhvCXEHKf3HoI5A== X-Received: by 2002:a5d:6b8e:0:b0:2c5:6277:d4fe with SMTP id n14-20020a5d6b8e000000b002c56277d4femr5091317wrx.27.1676571066983; Thu, 16 Feb 2023 10:11:06 -0800 (PST) Received: from localhost.localdomain ([176.41.28.141]) by smtp.gmail.com with ESMTPSA id x16-20020adfdcd0000000b002c54d97b1ecsm1989679wrm.72.2023.02.16.10.11.06 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 16 Feb 2023 10:11:06 -0800 (PST) From: Levend Sayar To: junfeng.guo@intel.com Cc: dev@dpdk.org, Levend Sayar Subject: [PATCH v2 4/4] net/gve: add standard and extended statistics Date: Thu, 16 Feb 2023 21:10:25 +0300 Message-Id: <20230216181025.23485-4-levendsayar@gmail.com> X-Mailer: git-send-email 2.37.1 (Apple Git-137.1) In-Reply-To: <20230216181025.23485-1-levendsayar@gmail.com> References: <20230216181025.23485-1-levendsayar@gmail.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 NIC statistics are enhanced with rx/tx queue errors. Signed-off-by: Levend Sayar --- drivers/net/gve/gve_ethdev.c | 49 +++++++++++++++++++++++++++++++----- 1 file changed, 43 insertions(+), 6 deletions(-) diff --git a/drivers/net/gve/gve_ethdev.c b/drivers/net/gve/gve_ethdev.c index 735847ede7..88adec7253 100644 --- a/drivers/net/gve/gve_ethdev.c +++ b/drivers/net/gve/gve_ethdev.c @@ -417,6 +417,18 @@ gve_xstats_get(struct rte_eth_dev *dev, struct rte_eth_xstat *xstats, unsigned i if (--requested == 0) return n; xstat++; + + xstat->id = indx++; + xstat->value = rxq->errors; + if (--requested == 0) + return n; + xstat++; + + xstat->id = indx++; + xstat->value = rxq->no_mbufs; + if (--requested == 0) + return n; + xstat++; } for (i = 0; i < dev->data->nb_tx_queues; i++) { @@ -432,10 +444,16 @@ gve_xstats_get(struct rte_eth_dev *dev, struct rte_eth_xstat *xstats, unsigned i if (--requested == 0) return n; xstat++; + + xstat->id = indx++; + xstat->value = txq->errors; + if (--requested == 0) + return n; + xstat++; } } - return (dev->data->nb_tx_queues + dev->data->nb_rx_queues) * 2; + return (dev->data->nb_rx_queues * 4) + (dev->data->nb_tx_queues * 3); } static int @@ -454,29 +472,48 @@ gve_xstats_get_names(struct rte_eth_dev *dev, struct rte_eth_xstat_name *xstats_ uint16_t i; for (i = 0; i < dev->data->nb_rx_queues; i++) { - snprintf(xstats_name->name, sizeof(xstats_name->name), "rx_q%d_packets", i); + snprintf(xstats_name->name, sizeof(xstats_name->name), + "rx_q%d_packets", i); + if (--requested == 0) + return n; + xstats_name++; + snprintf(xstats_name->name, sizeof(xstats_name->name), + "rx_q%d_bytes", i); if (--requested == 0) return n; xstats_name++; - snprintf(xstats_name->name, sizeof(xstats_name->name), "rx_q%d_bytes", i); + snprintf(xstats_name->name, sizeof(xstats_name->name), + "rx_q%d_errors", i); + if (--requested == 0) + return n; + xstats_name++; + snprintf(xstats_name->name, sizeof(xstats_name->name), + "rx_q%d_no_mbufs", i); if (--requested == 0) return n; xstats_name++; } for (i = 0; i < dev->data->nb_tx_queues; i++) { - snprintf(xstats_name->name, sizeof(xstats_name->name), "tx_q%d_packets", i); + snprintf(xstats_name->name, sizeof(xstats_name->name), + "tx_q%d_packets", i); + if (--requested == 0) + return n; + xstats_name++; + snprintf(xstats_name->name, sizeof(xstats_name->name), + "tx_q%d_bytes", i); if (--requested == 0) return n; xstats_name++; - snprintf(xstats_name->name, sizeof(xstats_name->name), "tx_q%d_bytes", i); + snprintf(xstats_name->name, sizeof(xstats_name->name), + "tx_q%d_errors", i); if (--requested == 0) return n; xstats_name++; } } - return (dev->data->nb_tx_queues + dev->data->nb_rx_queues) * 2; + return (dev->data->nb_rx_queues * 4) + (dev->data->nb_tx_queues * 3); } static const struct eth_dev_ops gve_eth_dev_ops = {