Commit 0e3912ff authored by Sameeh Jubran's avatar Sameeh Jubran Committed by Stefan Bader

net: ena: add good checksum counter

BugLink: https://bugs.launchpad.net/bugs/1850175

Add a new statistics to ETHTOOL to specify if the device calculated
and validated the Rx csum.
Signed-off-by: default avatarEvgeny Shmeilin <evgeny@annapurnaLabs.com>
Signed-off-by: default avatarSameeh Jubran <sameehj@amazon.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
(cherry picked from commit d2eecc6e)
Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
Acked-by: default avatarStefan Bader <stefan.bader@canonical.com>
Acked-by: default avatarKhaled Elmously <khalid.elmously@canonical.com>
Signed-off-by: default avatarStefan Bader <stefan.bader@canonical.com>
parent a1b4db41
...@@ -88,13 +88,14 @@ static const struct ena_stats ena_stats_tx_strings[] = { ...@@ -88,13 +88,14 @@ static const struct ena_stats ena_stats_tx_strings[] = {
static const struct ena_stats ena_stats_rx_strings[] = { static const struct ena_stats ena_stats_rx_strings[] = {
ENA_STAT_RX_ENTRY(cnt), ENA_STAT_RX_ENTRY(cnt),
ENA_STAT_RX_ENTRY(bytes), ENA_STAT_RX_ENTRY(bytes),
ENA_STAT_RX_ENTRY(rx_copybreak_pkt),
ENA_STAT_RX_ENTRY(csum_good),
ENA_STAT_RX_ENTRY(refil_partial), ENA_STAT_RX_ENTRY(refil_partial),
ENA_STAT_RX_ENTRY(bad_csum), ENA_STAT_RX_ENTRY(bad_csum),
ENA_STAT_RX_ENTRY(page_alloc_fail), ENA_STAT_RX_ENTRY(page_alloc_fail),
ENA_STAT_RX_ENTRY(skb_alloc_fail), ENA_STAT_RX_ENTRY(skb_alloc_fail),
ENA_STAT_RX_ENTRY(dma_mapping_err), ENA_STAT_RX_ENTRY(dma_mapping_err),
ENA_STAT_RX_ENTRY(bad_desc_num), ENA_STAT_RX_ENTRY(bad_desc_num),
ENA_STAT_RX_ENTRY(rx_copybreak_pkt),
ENA_STAT_RX_ENTRY(bad_req_id), ENA_STAT_RX_ENTRY(bad_req_id),
ENA_STAT_RX_ENTRY(empty_rx_ring), ENA_STAT_RX_ENTRY(empty_rx_ring),
ENA_STAT_RX_ENTRY(csum_unchecked), ENA_STAT_RX_ENTRY(csum_unchecked),
......
...@@ -1009,6 +1009,9 @@ static inline void ena_rx_checksum(struct ena_ring *rx_ring, ...@@ -1009,6 +1009,9 @@ static inline void ena_rx_checksum(struct ena_ring *rx_ring,
if (likely(ena_rx_ctx->l4_csum_checked)) { if (likely(ena_rx_ctx->l4_csum_checked)) {
skb->ip_summed = CHECKSUM_UNNECESSARY; skb->ip_summed = CHECKSUM_UNNECESSARY;
u64_stats_update_begin(&rx_ring->syncp);
rx_ring->rx_stats.csum_good++;
u64_stats_update_end(&rx_ring->syncp);
} else { } else {
u64_stats_update_begin(&rx_ring->syncp); u64_stats_update_begin(&rx_ring->syncp);
rx_ring->rx_stats.csum_unchecked++; rx_ring->rx_stats.csum_unchecked++;
......
...@@ -205,13 +205,14 @@ struct ena_stats_tx { ...@@ -205,13 +205,14 @@ struct ena_stats_tx {
struct ena_stats_rx { struct ena_stats_rx {
u64 cnt; u64 cnt;
u64 bytes; u64 bytes;
u64 rx_copybreak_pkt;
u64 csum_good;
u64 refil_partial; u64 refil_partial;
u64 bad_csum; u64 bad_csum;
u64 page_alloc_fail; u64 page_alloc_fail;
u64 skb_alloc_fail; u64 skb_alloc_fail;
u64 dma_mapping_err; u64 dma_mapping_err;
u64 bad_desc_num; u64 bad_desc_num;
u64 rx_copybreak_pkt;
u64 bad_req_id; u64 bad_req_id;
u64 empty_rx_ring; u64 empty_rx_ring;
u64 csum_unchecked; u64 csum_unchecked;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment