Messages in this thread Patch in this message |  | | From | Shenwei Wang <> | Subject | [PATCH v5 3/3] net: fec: add page pool statistics | Date | Tue, 15 Nov 2022 14:49:51 -0600 |
| |
add page pool statistics to ethtool stats.
Signed-off-by: Shenwei Wang <shenwei.wang@nxp.com> --- drivers/net/ethernet/freescale/fec_main.c | 24 ++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c index bb2157022022..ae905ea1ab7d 100644 --- a/drivers/net/ethernet/freescale/fec_main.c +++ b/drivers/net/ethernet/freescale/fec_main.c @@ -2755,6 +2755,24 @@ static void fec_enet_get_xdp_stats(struct fec_enet_private *fep, u64 *data) memcpy(data, xdp_stats, sizeof(xdp_stats)); } +static void fec_enet_page_pool_stats(struct fec_enet_private *fep, u64 *data) +{ + struct page_pool_stats stats = {}; + struct fec_enet_priv_rx_q *rxq; + int i; + + for (i = fep->num_rx_queues - 1; i >= 0; i--) { + rxq = fep->rx_queue[i]; + + if (!rxq->page_pool) + continue; + + page_pool_get_stats(rxq->page_pool, &stats); + } + + page_pool_ethtool_stats_get(data, &stats); +} + static void fec_enet_get_ethtool_stats(struct net_device *dev, struct ethtool_stats *stats, u64 *data) { @@ -2768,6 +2786,8 @@ static void fec_enet_get_ethtool_stats(struct net_device *dev, fec_enet_get_xdp_stats(fep, data); data += XDP_STATS_TOTAL; + + fec_enet_page_pool_stats(fep, data); } static void fec_enet_get_strings(struct net_device *netdev, @@ -2784,6 +2804,7 @@ static void fec_enet_get_strings(struct net_device *netdev, strscpy(data, fec_xdp_stat_strs[i], ETH_GSTRING_LEN); data += ETH_GSTRING_LEN; } + page_pool_ethtool_stats_get_strings(data); break; case ETH_SS_TEST: net_selftest_get_strings(data); @@ -2795,7 +2816,8 @@ static int fec_enet_get_sset_count(struct net_device *dev, int sset) { switch (sset) { case ETH_SS_STATS: - return (ARRAY_SIZE(fec_stats) + XDP_STATS_TOTAL); + return (ARRAY_SIZE(fec_stats) + XDP_STATS_TOTAL + + page_pool_ethtool_stats_get_count()); case ETH_SS_TEST: return net_selftest_get_count(); default: -- 2.34.1
|  |