On Wed, Apr 24, 2019 at 9:47 AM simei <simei...@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: sta...@dpdk.org > > Signed-off-by: Simei Su <simei...@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