[PATCH v4 9/9] net/gve: add support for stats

Ferruh Yigit ferruh.yigit at amd.com
Thu Oct 6 16:25:52 CEST 2022


On 9/27/2022 8:32 AM, Junfeng Guo wrote:

> 
> Update stats add support of dev_ops stats_get/reset.
> 
> Signed-off-by: Xiaoyun Li <xiaoyun.li at intel.com>
> Signed-off-by: Junfeng Guo <junfeng.guo at intel.com>
> ---
>   doc/guides/nics/features/gve.ini |  2 +
>   drivers/net/gve/gve_ethdev.c     | 71 ++++++++++++++++++++++++++++++++
>   drivers/net/gve/gve_ethdev.h     | 11 +++++
>   drivers/net/gve/gve_rx.c         | 15 ++++++-
>   drivers/net/gve/gve_tx.c         | 13 ++++++
>   5 files changed, 110 insertions(+), 2 deletions(-)
> 
> diff --git a/doc/guides/nics/features/gve.ini b/doc/guides/nics/features/gve.ini
> index cdc46b08a3..180408aa80 100644
> --- a/doc/guides/nics/features/gve.ini
> +++ b/doc/guides/nics/features/gve.ini
> @@ -10,6 +10,8 @@ MTU update           = Y
>   TSO                  = Y
>   RSS hash             = Y
>   L4 checksum offload  = Y
> +Basic stats          = Y
> +Stats per queue      = Y

"stats per queue" is something else, agree that it is bad naming, please 
check features.rst file.

>   Linux                = Y
>   x86-32               = Y
>   x86-64               = Y
> diff --git a/drivers/net/gve/gve_ethdev.c b/drivers/net/gve/gve_ethdev.c
> index b9b8e51b02..cd474b8128 100644
> --- a/drivers/net/gve/gve_ethdev.c
> +++ b/drivers/net/gve/gve_ethdev.c
> @@ -328,6 +328,75 @@ gve_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
>          return 0;
>   }
> 
> +static int
> +gve_dev_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
> +{
> +       uint16_t i;
> +
> +       for (i = 0; i < dev->data->nb_tx_queues; i++) {
> +               struct gve_tx_queue *txq = dev->data->tx_queues[i];
> +               if (txq == NULL)
> +                       continue;
> +
> +               stats->opackets += txq->packets;
> +               stats->obytes += txq->bytes;
> +               stats->oerrors += txq->errors;
> +
> +               if (i < RTE_ETHDEV_QUEUE_STAT_CNTRS) {
> +                       stats->q_opackets[i] = txq->packets;
> +                       stats->q_obytes[i] = txq->bytes;

Queue stats update is moved to xstat [1], we are waiting existing PMDs 
to adopt it but for new drivers it is better to implement new method.

Can you please either drop queue stats completely, or implement it via 
xstats?

[1]
https://elixir.bootlin.com/dpdk/v22.07/source/doc/guides/rel_notes/deprecation.rst#L118



More information about the dev mailing list