[dpdk-dev] net/i40e:fix VSI stats error
Checks
Commit Message
In VF, the number of ibytes read from register
have been stripped out CRC already, but in stats, it
subtracts CRC bytes again. So it lead to RX
bytes is smaller than TX bytes.
Fixes: 98abce23(fix VF statistics)
Signed-off-by: Yanglong Wu <yanglong.wu@intel.com>
---
drivers/net/i40e/i40e_ethdev.c | 4 ----
1 file changed, 4 deletions(-)
Comments
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Yanglong Wu
> Sent: Thursday 1 February 2018 02:11
> To: dev@dpdk.org
> Cc: Zhang, Qi Z <qi.z.zhang@intel.com>; Lu, Wenzhuo
> <wenzhuo.lu@intel.com>; Wu, Yanglong <yanglong.wu@intel.com>
> Subject: [dpdk-dev] [PATCH] net/i40e:fix VSI stats error
>
> In VF, the number of ibytes read from register have been stripped out CRC
> already, but in stats, it subtracts CRC bytes again. So it lead to RX bytes is
> smaller than TX bytes.
>
> Fixes: 98abce23(fix VF statistics)
> Signed-off-by: Yanglong Wu <yanglong.wu@intel.com>
> ---
> drivers/net/i40e/i40e_ethdev.c | 4 ----
> 1 file changed, 4 deletions(-)
>
> diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
> index c4df65df0..84e82889a 100644
> --- a/drivers/net/i40e/i40e_ethdev.c
> +++ b/drivers/net/i40e/i40e_ethdev.c
> @@ -2440,10 +2440,6 @@ i40e_update_vsi_stats(struct i40e_vsi *vsi)
> i40e_stat_update_48(hw, I40E_GLV_BPRCH(idx),
> I40E_GLV_BPRCL(idx),
> vsi->offset_loaded, &oes->rx_broadcast,
> &nes->rx_broadcast);
> - /* exclude CRC bytes */
> - nes->rx_bytes -= (nes->rx_unicast + nes->rx_multicast +
> - nes->rx_broadcast) * ETHER_CRC_LEN;
> -
> i40e_stat_update_32(hw, I40E_GLV_RDPC(idx), vsi->offset_loaded,
> &oes->rx_discards, &nes->rx_discards);
> /* GLV_REPC not supported */
> --
> 2.11.0
Reviewed-by: Kirill Rybalchenko <kirill.rybalchenko@intel.com>
> -----Original Message-----
> From: Rybalchenko, Kirill
> Sent: Wednesday, March 14, 2018 8:00 PM
> To: Wu, Yanglong <yanglong.wu@intel.com>; dev@dpdk.org
> Cc: Zhang, Qi Z <qi.z.zhang@intel.com>; Lu, Wenzhuo
> <wenzhuo.lu@intel.com>; Wu, Yanglong <yanglong.wu@intel.com>
> Subject: RE: [dpdk-dev] [PATCH] net/i40e:fix VSI stats error
>
>
> > -----Original Message-----
> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Yanglong Wu
> > Sent: Thursday 1 February 2018 02:11
> > To: dev@dpdk.org
> > Cc: Zhang, Qi Z <qi.z.zhang@intel.com>; Lu, Wenzhuo
> > <wenzhuo.lu@intel.com>; Wu, Yanglong <yanglong.wu@intel.com>
> > Subject: [dpdk-dev] [PATCH] net/i40e:fix VSI stats error
> >
> > In VF, the number of ibytes read from register have been stripped out
This is not correct, statistic read from register I40E_GLV_GORCH|L does include CRC.
It should be excluded.
Regards
Qi
> > CRC already, but in stats, it subtracts CRC bytes again. So it lead to
> > RX bytes is smaller than TX bytes.
Do you mean, CRC is double stripped by software, or you assume
> >
> > Fixes: 98abce23(fix VF statistics)
> > Signed-off-by: Yanglong Wu <yanglong.wu@intel.com>
> > ---
> > drivers/net/i40e/i40e_ethdev.c | 4 ----
> > 1 file changed, 4 deletions(-)
> >
> > diff --git a/drivers/net/i40e/i40e_ethdev.c
> > b/drivers/net/i40e/i40e_ethdev.c index c4df65df0..84e82889a 100644
> > --- a/drivers/net/i40e/i40e_ethdev.c
> > +++ b/drivers/net/i40e/i40e_ethdev.c
> > @@ -2440,10 +2440,6 @@ i40e_update_vsi_stats(struct i40e_vsi *vsi)
> > i40e_stat_update_48(hw, I40E_GLV_BPRCH(idx), I40E_GLV_BPRCL(idx),
> > vsi->offset_loaded, &oes->rx_broadcast,
> > &nes->rx_broadcast);
> > - /* exclude CRC bytes */
> > - nes->rx_bytes -= (nes->rx_unicast + nes->rx_multicast +
> > - nes->rx_broadcast) * ETHER_CRC_LEN;
> > -
> > i40e_stat_update_32(hw, I40E_GLV_RDPC(idx), vsi->offset_loaded,
> > &oes->rx_discards, &nes->rx_discards);
> > /* GLV_REPC not supported */
> > --
> > 2.11.0
>
> Reviewed-by: Kirill Rybalchenko <kirill.rybalchenko@intel.com>
>
>
@@ -2440,10 +2440,6 @@ i40e_update_vsi_stats(struct i40e_vsi *vsi)
i40e_stat_update_48(hw, I40E_GLV_BPRCH(idx), I40E_GLV_BPRCL(idx),
vsi->offset_loaded, &oes->rx_broadcast,
&nes->rx_broadcast);
- /* exclude CRC bytes */
- nes->rx_bytes -= (nes->rx_unicast + nes->rx_multicast +
- nes->rx_broadcast) * ETHER_CRC_LEN;
-
i40e_stat_update_32(hw, I40E_GLV_RDPC(idx), vsi->offset_loaded,
&oes->rx_discards, &nes->rx_discards);
/* GLV_REPC not supported */