[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