public inbox for netdev@vger.kernel.org 
 help / color / mirror / Atom feed
From: <darinzon@amazon•com>
To: David Miller <davem@davemloft•net>,
	Jakub Kicinski <kuba@kernel•org>, <netdev@vger•kernel.org>
Cc: David Arinzon <darinzon@amazon•com>,
	"Woodhouse, David" <dwmw@amazon•com>,
	"Machulsky, Zorik" <zorik@amazon•com>,
	"Matushevsky, Alexander" <matua@amazon•com>,
	Saeed Bshara <saeedb@amazon•com>, "Wilson, Matt" <msw@amazon•com>,
	"Liguori, Anthony" <aliguori@amazon•com>,
	"Bshara, Nafea" <nafea@amazon•com>,
	"Belgazal, Netanel" <netanel@amazon•com>,
	"Saidi, Ali" <alisaidi@amazon•com>,
	"Herrenschmidt, Benjamin" <benh@amazon•com>,
	"Kiyanovski, Arthur" <akiyano@amazon•com>,
	"Dagan, Noam" <ndagan@amazon•com>,
	"Agroskin, Shay" <shayagr@amazon•com>,
	"Itzko, Shahar" <itzko@amazon•com>,
	"Abboud, Osama" <osamaabb@amazon•com>,
	"Ostrovsky, Evgeny" <evostrov@amazon•com>,
	"Tabachnik, Ofir" <ofirt@amazon•com>
Subject: [PATCH v2 net-next 11/11] net: ena: Take xdp packets stats into account in ena_get_stats64()
Date: Mon, 1 Jan 2024 19:08:55 +0000	[thread overview]
Message-ID: <20240101190855.18739-12-darinzon@amazon.com> (raw)
In-Reply-To: <20240101190855.18739-1-darinzon@amazon.com>

From: David Arinzon <darinzon@amazon•com>

Queue stats using ifconfig and ip are retrieved
via ena_get_stats64(). This function currently does not take
the xdp sent or dropped packets stats into account.

This commit adds the following xdp stats to ena_get_stats64():
tx bytes sent
tx packets sent
rx dropped packets

Signed-off-by: Arthur Kiyanovski <akiyano@amazon•com>
Signed-off-by: David Arinzon <darinzon@amazon•com>
---
 drivers/net/ethernet/amazon/ena/ena_netdev.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c b/drivers/net/ethernet/amazon/ena/ena_netdev.c
index c5a84ea..1c0a782 100644
--- a/drivers/net/ethernet/amazon/ena/ena_netdev.c
+++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c
@@ -2795,6 +2795,7 @@ static void ena_get_stats64(struct net_device *netdev,
 {
 	struct ena_adapter *adapter = netdev_priv(netdev);
 	struct ena_ring *rx_ring, *tx_ring;
+	u64 total_xdp_rx_drops = 0;
 	unsigned int start;
 	u64 rx_drops;
 	u64 tx_drops;
@@ -2803,8 +2804,8 @@ static void ena_get_stats64(struct net_device *netdev,
 	if (!test_bit(ENA_FLAG_DEV_UP, &adapter->flags))
 		return;
 
-	for (i = 0; i < adapter->num_io_queues; i++) {
-		u64 bytes, packets;
+	for (i = 0; i < adapter->num_io_queues + adapter->xdp_num_queues; i++) {
+		u64 bytes, packets, xdp_rx_drops;
 
 		tx_ring = &adapter->tx_ring[i];
 
@@ -2817,16 +2818,22 @@ static void ena_get_stats64(struct net_device *netdev,
 		stats->tx_packets += packets;
 		stats->tx_bytes += bytes;
 
+		/* In XDP there isn't an RX queue counterpart */
+		if (ENA_IS_XDP_INDEX(adapter, i))
+			continue;
+
 		rx_ring = &adapter->rx_ring[i];
 
 		do {
 			start = u64_stats_fetch_begin(&rx_ring->syncp);
 			packets = rx_ring->rx_stats.cnt;
 			bytes = rx_ring->rx_stats.bytes;
+			xdp_rx_drops = rx_ring->rx_stats.xdp_drop;
 		} while (u64_stats_fetch_retry(&rx_ring->syncp, start));
 
 		stats->rx_packets += packets;
 		stats->rx_bytes += bytes;
+		total_xdp_rx_drops += xdp_rx_drops;
 	}
 
 	do {
@@ -2835,7 +2842,7 @@ static void ena_get_stats64(struct net_device *netdev,
 		tx_drops = adapter->dev_stats.tx_drops;
 	} while (u64_stats_fetch_retry(&adapter->syncp, start));
 
-	stats->rx_dropped = rx_drops;
+	stats->rx_dropped = rx_drops + total_xdp_rx_drops;
 	stats->tx_dropped = tx_drops;
 
 	stats->multicast = 0;
-- 
2.40.1


  parent reply	other threads:[~2024-01-01 19:10 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-01 19:08 [PATCH v2 net-next 00/11] ENA driver XDP changes darinzon
2024-01-01 19:08 ` [PATCH v2 net-next 01/11] net: ena: Move XDP code to its new files darinzon
2024-01-01 19:08 ` [PATCH v2 net-next 02/11] net: ena: Pass ena_adapter instead of net_device to ena_xmit_common() darinzon
2024-01-01 19:08 ` [PATCH v2 net-next 03/11] net: ena: Put orthogonal fields in ena_tx_buffer in a union darinzon
2024-01-01 19:08 ` [PATCH v2 net-next 04/11] net: ena: Introduce total_tx_size field in ena_tx_buffer struct darinzon
2024-01-01 19:08 ` [PATCH v2 net-next 05/11] net: ena: Use tx_ring instead of xdp_ring for XDP channel TX darinzon
2024-01-01 19:08 ` [PATCH v2 net-next 06/11] net: ena: Don't check if XDP program is loaded in ena_xdp_execute() darinzon
2024-01-01 19:08 ` [PATCH v2 net-next 07/11] net: ena: Refactor napi functions darinzon
2024-01-04  2:00   ` Jakub Kicinski
2024-01-04  6:49     ` Arinzon, David
2024-01-01 19:08 ` [PATCH v2 net-next 08/11] net: ena: Add more debug prints to XDP related function darinzon
2024-01-01 19:08 ` [PATCH v2 net-next 09/11] net: ena: Always register RX queue info darinzon
2024-01-01 19:08 ` [PATCH v2 net-next 10/11] net: ena: Make queue stats code cleaner by removing the if block darinzon
2024-01-01 19:08 ` darinzon [this message]
2024-01-02 18:08 ` [PATCH v2 net-next 00/11] ENA driver XDP changes Jakub Kicinski
2024-01-03  7:08   ` Arinzon, David
2024-01-03 22:18     ` Jakub Kicinski
2024-01-04  2:10 ` patchwork-bot+netdevbpf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240101190855.18739-12-darinzon@amazon.com \
    --to=darinzon@amazon$(echo .)com \
    --cc=akiyano@amazon$(echo .)com \
    --cc=aliguori@amazon$(echo .)com \
    --cc=alisaidi@amazon$(echo .)com \
    --cc=benh@amazon$(echo .)com \
    --cc=davem@davemloft$(echo .)net \
    --cc=dwmw@amazon$(echo .)com \
    --cc=evostrov@amazon$(echo .)com \
    --cc=itzko@amazon$(echo .)com \
    --cc=kuba@kernel$(echo .)org \
    --cc=matua@amazon$(echo .)com \
    --cc=msw@amazon$(echo .)com \
    --cc=nafea@amazon$(echo .)com \
    --cc=ndagan@amazon$(echo .)com \
    --cc=netanel@amazon$(echo .)com \
    --cc=netdev@vger$(echo .)kernel.org \
    --cc=ofirt@amazon$(echo .)com \
    --cc=osamaabb@amazon$(echo .)com \
    --cc=saeedb@amazon$(echo .)com \
    --cc=shayagr@amazon$(echo .)com \
    --cc=zorik@amazon$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox