From patchwork Tue Oct 11 05:57:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Khalid Elmously X-Patchwork-Id: 1688477 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=canonical.com header.i=@canonical.com header.a=rsa-sha256 header.s=20210705 header.b=I6vWpvMQ; dkim-atps=neutral Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4MmlSd0dlxz20cX for ; Tue, 11 Oct 2022 16:58:09 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1oi8H7-0000k5-2E; Tue, 11 Oct 2022 05:57:57 +0000 Received: from smtp-relay-internal-0.internal ([10.131.114.225] helo=smtp-relay-internal-0.canonical.com) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1oi8Gd-0008OT-On for kernel-team@lists.ubuntu.com; Tue, 11 Oct 2022 05:57:28 +0000 Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-internal-0.canonical.com (Postfix) with ESMTPS id 10CCA4000B for ; Tue, 11 Oct 2022 05:57:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1665467845; bh=w+vVeuvUEUprmr/jWOeX0iCcM0NbN6uPlVAcZXqFUKQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=I6vWpvMQAyUu5//6D2sDqOlkDfpiUf8PUL6mvPZGPBqKApOG+jXxMRFddel1s2xgg FL0dwSXVBSXpAsqO7yenHA45mIf/FlPB5fHoaLWJVxPuwwHnGOndvI8GP4k8E7rpAi fOY80y1hdw3ZsIZoV7vH9fdxE8SZQ2RELkWfosSdU0t1lFgwowoveSNRgNJ0ZoNXCJ wVQxP3KZEGMHFnW1T77raJDAlRsXmNqmP8OTz0cMghs+X/svc/JwNi1Q9qlT6p6b/q MabB5VJXCim4sJE2g1lLXRbFpj008Jt8MYtYWypUYQ8TJn3qSis9TdJpZPhymfRGrO DeSm7yF7nlvGg== Received: by mail-qk1-f200.google.com with SMTP id w13-20020a05620a424d00b006e833c4fb0dso8458982qko.2 for ; Mon, 10 Oct 2022 22:57:25 -0700 (PDT) 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=w+vVeuvUEUprmr/jWOeX0iCcM0NbN6uPlVAcZXqFUKQ=; b=prO5vAMNWnWeWWOY8qQn9Sba4v3yncKuL889hPh86yge27xLtEXkaNXlJMMFn4NrE9 pPSJo5UGufCemFlLIIQ7NKAo6eq+eqD6yeB5Ax3frpWDK86PtMplSCuOsUu1PHUZJCy9 XXSXy/T0TQEGKwLdlktSeDFpYu2isk84m7xNewWe4vF/yWJm14pIce1ltvWojmRqv7LJ LPQTlvX2UqXI7k8y5hC9uQwp2dVuBzzewCA7nQcB6me+rixj4RwAb8EmgGqo/ZpE0gyq 9F3I5C1Xia5CxV/FpmWkRTmWi/BVov+pfoQv5l48YHs3bcrcmUnfIc0KfvdcAsUB4x2G pmCQ== X-Gm-Message-State: ACrzQf1/WFJDQNPBeq80+c0k4L2kckxTXjTgfV1VfTYJINGg5e2KIQbX ImK7fy/2F/HiN5pgiqQnbwqb0G7l2xNtIQwbc4lVt4pmSQPr8dpKafOxZ0GiC8n42qSl0Kl1cAZ Nyjy9XMEtecyMWZ/wBymsgneEcCqcU7rgj7wiW1qecQ== X-Received: by 2002:a05:622a:1186:b0:398:337d:3133 with SMTP id m6-20020a05622a118600b00398337d3133mr11146851qtk.605.1665467844661; Mon, 10 Oct 2022 22:57:24 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5xnUQKqXY6alBhJ7HcgD2v9TIbd+b70mUAxuk0nb3/tBL0WKvekp4ywCzODAYKdhPBHzPWjg== X-Received: by 2002:a05:622a:1186:b0:398:337d:3133 with SMTP id m6-20020a05622a118600b00398337d3133mr11146841qtk.605.1665467844369; Mon, 10 Oct 2022 22:57:24 -0700 (PDT) Received: from rpi4-work.fuzzbuzz.org ([38.147.253.164]) by smtp.gmail.com with ESMTPSA id z8-20020ac81008000000b0039351b26714sm9848927qti.7.2022.10.10.22.57.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 22:57:23 -0700 (PDT) From: Khalid Elmously To: kernel-team@lists.ubuntu.com Subject: [PATCH 19/19] gve: Add consumed counts to ethtool stats Date: Tue, 11 Oct 2022 01:57:04 -0400 Message-Id: <20221011055704.642271-20-khalid.elmously@canonical.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221011055704.642271-1-khalid.elmously@canonical.com> References: <20221011055704.642271-1-khalid.elmously@canonical.com> MIME-Version: 1.0 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Jordan Kim BugLink: https://bugs.launchpad.net/bugs/1953575 Being able to see how many descriptors are in-use is helpful when diagnosing certain issues. Signed-off-by: Jeroen de Borst Signed-off-by: Jordan Kim Signed-off-by: David S. Miller (cherry picked from commit 2c9198356d56a8e035702cfd1a0fde27edbcc338) Signed-off-by: Khalid Elmously --- drivers/net/ethernet/google/gve/gve_ethtool.c | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/drivers/net/ethernet/google/gve/gve_ethtool.c b/drivers/net/ethernet/google/gve/gve_ethtool.c index d4efe75987b3..dba477f5199c 100644 --- a/drivers/net/ethernet/google/gve/gve_ethtool.c +++ b/drivers/net/ethernet/google/gve/gve_ethtool.c @@ -43,7 +43,7 @@ static const char gve_gstrings_main_stats[][ETH_GSTRING_LEN] = { }; static const char gve_gstrings_rx_stats[][ETH_GSTRING_LEN] = { - "rx_posted_desc[%u]", "rx_completed_desc[%u]", "rx_bytes[%u]", + "rx_posted_desc[%u]", "rx_completed_desc[%u]", "rx_consumed_desc[%u]", "rx_bytes[%u]", "rx_cont_packet_cnt[%u]", "rx_frag_flip_cnt[%u]", "rx_frag_copy_cnt[%u]", "rx_dropped_pkt[%u]", "rx_copybreak_pkt[%u]", "rx_copied_pkt[%u]", "rx_queue_drop_cnt[%u]", "rx_no_buffers_posted[%u]", @@ -51,7 +51,7 @@ static const char gve_gstrings_rx_stats[][ETH_GSTRING_LEN] = { }; static const char gve_gstrings_tx_stats[][ETH_GSTRING_LEN] = { - "tx_posted_desc[%u]", "tx_completed_desc[%u]", "tx_bytes[%u]", + "tx_posted_desc[%u]", "tx_completed_desc[%u]", "tx_consumed_desc[%u]", "tx_bytes[%u]", "tx_wake[%u]", "tx_stop[%u]", "tx_event_counter[%u]", "tx_dma_mapping_error[%u]", }; @@ -140,10 +140,11 @@ static void gve_get_ethtool_stats(struct net_device *netdev, struct ethtool_stats *stats, u64 *data) { - u64 tmp_rx_pkts, tmp_rx_bytes, tmp_rx_skb_alloc_fail, tmp_rx_buf_alloc_fail, - tmp_rx_desc_err_dropped_pkt, tmp_tx_pkts, tmp_tx_bytes; + u64 tmp_rx_pkts, tmp_rx_bytes, tmp_rx_skb_alloc_fail, + tmp_rx_buf_alloc_fail, tmp_rx_desc_err_dropped_pkt, + tmp_tx_pkts, tmp_tx_bytes; u64 rx_buf_alloc_fail, rx_desc_err_dropped_pkt, rx_pkts, - rx_skb_alloc_fail, rx_bytes, tx_pkts, tx_bytes; + rx_skb_alloc_fail, rx_bytes, tx_pkts, tx_bytes, tx_dropped; int stats_idx, base_stats_idx, max_stats_idx; struct stats *report_stats; int *rx_qid_to_stats_idx; @@ -192,7 +193,7 @@ gve_get_ethtool_stats(struct net_device *netdev, rx_desc_err_dropped_pkt += tmp_rx_desc_err_dropped_pkt; } } - for (tx_pkts = 0, tx_bytes = 0, ring = 0; + for (tx_pkts = 0, tx_bytes = 0, tx_dropped = 0, ring = 0; ring < priv->tx_cfg.num_queues; ring++) { if (priv->tx) { do { @@ -204,6 +205,7 @@ gve_get_ethtool_stats(struct net_device *netdev, start)); tx_pkts += tmp_tx_pkts; tx_bytes += tmp_tx_bytes; + tx_dropped += priv->tx[ring].dropped_pkt; } } @@ -215,9 +217,7 @@ gve_get_ethtool_stats(struct net_device *netdev, /* total rx dropped packets */ data[i++] = rx_skb_alloc_fail + rx_buf_alloc_fail + rx_desc_err_dropped_pkt; - /* Skip tx_dropped */ - i++; - + data[i++] = tx_dropped; data[i++] = priv->tx_timeo_cnt; data[i++] = rx_skb_alloc_fail; data[i++] = rx_buf_alloc_fail; @@ -256,6 +256,7 @@ gve_get_ethtool_stats(struct net_device *netdev, data[i++] = rx->fill_cnt; data[i++] = rx->cnt; + data[i++] = rx->fill_cnt - rx->cnt; do { start = u64_stats_fetch_begin(&priv->rx[ring].statss); @@ -319,12 +320,14 @@ gve_get_ethtool_stats(struct net_device *netdev, if (gve_is_gqi(priv)) { data[i++] = tx->req; data[i++] = tx->done; + data[i++] = tx->req - tx->done; } else { /* DQO doesn't currently support * posted/completed descriptor counts; */ data[i++] = 0; data[i++] = 0; + data[i++] = tx->dqo_tx.tail - tx->dqo_tx.head; } do { start =