[dpdk-dev] [DPDK] net/ice: fix Rx statistics

David Marchand david.marchand at redhat.com
Thu Apr 25 09:12:43 CEST 2019


On Wed, Apr 24, 2019 at 9:47 AM simei <simei.su at intel.com> wrote:

> The RX stats will increase even no packets sent, this patch fix this issue
> by modifying ipackets and ibytes statistics based on vsi instead of port
> to avoid statistics error.
>
> Fixes: a37bde56314d ("net/ice: support statistics")
> Cc: stable at dpdk.org
>
> Signed-off-by: Simei Su <simei.su at intel.com>
> ---
>  drivers/net/ice/ice_ethdev.c | 9 ++++-----
>  1 file changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
> index 0946b19..1c851ac 100644
> --- a/drivers/net/ice/ice_ethdev.c
> +++ b/drivers/net/ice/ice_ethdev.c
> @@ -3305,15 +3305,14 @@ static int ice_rx_queue_intr_disable(struct
> rte_eth_dev *dev,
>         /* call read registers - updates values, now write them to struct
> */
>         ice_read_stats_registers(pf, hw);
>
> -       stats->ipackets = ns->eth.rx_unicast +
> -                         ns->eth.rx_multicast +
> -                         ns->eth.rx_broadcast -
> -                         ns->eth.rx_discards -
> +       stats->ipackets = pf->main_vsi->eth_stats.rx_unicast +
> +                         pf->main_vsi->eth_stats.rx_multicast +
> +                         pf->main_vsi->eth_stats.rx_broadcast -
>                           pf->main_vsi->eth_stats.rx_discards;
>         stats->opackets = ns->eth.tx_unicast +
>                           ns->eth.tx_multicast +
>                           ns->eth.tx_broadcast;
> -       stats->ibytes   = ns->eth.rx_bytes;
> +       stats->ibytes   = pf->main_vsi->eth_stats.rx_bytes;
>         stats->obytes   = ns->eth.tx_bytes;
>         stats->oerrors  = ns->eth.tx_errors +
>                           pf->main_vsi->eth_stats.tx_errors;
> --
> 1.8.3.1
>
>
I don't know this hw nor this code.
However, from the description and this snippet, it looks like
opackets/obytes/oerrors are still referring to port stats instead of the pf
stats.
Can you elaborate ?

Thanks.


-- 
David Marchand


More information about the dev mailing list