dpaa2-eth: Add xdp counters
authorIoana Ciocoi Radulescu <ruxandra.radulescu@nxp.com>
Mon, 26 Nov 2018 16:27:34 +0000 (16:27 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 28 Nov 2018 18:57:46 +0000 (10:57 -0800)
Add counters for xdp processed frames to the channel statistics.

Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
Reviewed-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h
drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c

index d2bc5da05805a74a2fa76a2b61babc95214a6f94..be841718eb49db6f85e009b82f6a7da671ea2dc9 100644 (file)
@@ -313,9 +313,11 @@ static u32 run_xdp(struct dpaa2_eth_priv *priv,
                if (err) {
                        xdp_release_buf(priv, ch, addr);
                        percpu_stats->tx_errors++;
+                       ch->stats.xdp_tx_err++;
                } else {
                        percpu_stats->tx_packets++;
                        percpu_stats->tx_bytes += dpaa2_fd_get_len(fd);
+                       ch->stats.xdp_tx++;
                }
                break;
        default:
@@ -324,6 +326,7 @@ static u32 run_xdp(struct dpaa2_eth_priv *priv,
                trace_xdp_exception(priv->net_dev, xdp_prog, xdp_act);
        case XDP_DROP:
                xdp_release_buf(priv, ch, addr);
+               ch->stats.xdp_drop++;
                break;
        }
 
index 41a2a0dcef8e77ee7b192ab298305ebb1d70952b..69c965de192b42c5d3f90a4d1a7debb20cdf6560 100644 (file)
@@ -249,6 +249,10 @@ struct dpaa2_eth_ch_stats {
        __u64 pull_err;
        /* Number of CDANs; useful to estimate avg NAPI len */
        __u64 cdan;
+       /* XDP counters */
+       __u64 xdp_drop;
+       __u64 xdp_tx;
+       __u64 xdp_tx_err;
 };
 
 /* Maximum number of queues associated with a DPNI */
index 79eeebeb1ffe0fad9460cb5f6ff3151be3b86a96..0c831bffeb9257b3b6a103c23058ac896b983b4b 100644 (file)
@@ -45,6 +45,9 @@ static char dpaa2_ethtool_extras[][ETH_GSTRING_LEN] = {
        "[drv] dequeue portal busy",
        "[drv] channel pull errors",
        "[drv] cdan",
+       "[drv] xdp drop",
+       "[drv] xdp tx",
+       "[drv] xdp tx errors",
 };
 
 #define DPAA2_ETH_NUM_EXTRA_STATS      ARRAY_SIZE(dpaa2_ethtool_extras)