net/txgbe: fix Rx missed packet counter
authorJiawen Wu <jiawenwu@trustnetic.com>
Fri, 5 Mar 2021 02:14:36 +0000 (10:14 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Mon, 8 Mar 2021 11:32:33 +0000 (12:32 +0100)
Add the Rx dropped packet counter into stats->imissed, to ensure the
stats correct.

Fixes: c9bb590d4295 ("net/txgbe: support device statistics")
Cc: stable@dpdk.org
Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
drivers/net/txgbe/base/txgbe_type.h
drivers/net/txgbe/txgbe_ethdev.c

index ef8358a..2c8a386 100644 (file)
@@ -353,6 +353,7 @@ struct txgbe_hw_stats {
        u64 rx_management_packets;
        u64 tx_management_packets;
        u64 rx_management_dropped;
+       u64 rx_dma_drop;
        u64 rx_drop_packets;
 
        /* Basic Error */
index 90137d0..1ab8d2c 100644 (file)
@@ -2080,6 +2080,7 @@ txgbe_read_stats_registers(struct txgbe_hw *hw,
 
        hw_stats->rx_bytes += rd64(hw, TXGBE_DMARXOCTL);
        hw_stats->tx_bytes += rd64(hw, TXGBE_DMATXOCTL);
+       hw_stats->rx_dma_drop += rd32(hw, TXGBE_DMARXDROP);
        hw_stats->rx_drop_packets += rd32(hw, TXGBE_PBRXDROP);
 
        /* MAC Stats */
@@ -2228,7 +2229,8 @@ txgbe_dev_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
        }
 
        /* Rx Errors */
-       stats->imissed  = hw_stats->rx_total_missed_packets;
+       stats->imissed  = hw_stats->rx_total_missed_packets +
+                         hw_stats->rx_dma_drop;
        stats->ierrors  = hw_stats->rx_crc_errors +
                          hw_stats->rx_mac_short_packet_dropped +
                          hw_stats->rx_length_errors +