HI guojia,

> -----Original Message-----
> From: Guo, Jia <jia....@intel.com>
> Sent: Thursday, September 10, 2020 1:59 PM
> To: Han, YingyaX <yingyax....@intel.com>; Jiang, JunyuX
> <junyux.ji...@intel.com>; dev@dpdk.org
> Cc: Xing, Beilei <beilei.x...@intel.com>; Jiang, JunyuX
> <junyux.ji...@intel.com>; sta...@dpdk.org
> Subject: RE: [dpdk-stable] [PATCH] net/i40e: fix incorrect byte counters
> 
> Hi, junyu
> 
> > -----Original Message-----
> > From: Han, YingyaX <yingyax....@intel.com>
> > Sent: Thursday, September 10, 2020 10:18 AM
> > To: Jiang, JunyuX <junyux.ji...@intel.com>; dev@dpdk.org
> > Cc: Guo, Jia <jia....@intel.com>; Xing, Beilei
> > <beilei.x...@intel.com>; Jiang, JunyuX <junyux.ji...@intel.com>;
> > sta...@dpdk.org
> > Subject: RE: [dpdk-stable] [PATCH] net/i40e: fix incorrect byte
> > counters
> >
> > Tested-by: Yingya Han <yingyax....@intel.com>
> >
> > -----Original Message-----
> > From: stable <stable-boun...@dpdk.org> On Behalf Of Junyu Jiang
> > Sent: Thursday, September 10, 2020 9:54 AM
> > To: dev@dpdk.org
> > Cc: Guo, Jia <jia....@intel.com>; Xing, Beilei
> > <beilei.x...@intel.com>; Jiang, JunyuX <junyux.ji...@intel.com>;
> > sta...@dpdk.org
> > Subject: [dpdk-stable] [PATCH] net/i40e: fix incorrect byte counters
> >
> > This patch fixed the issue that rx/tx bytes overflowed on 48 bit
> > limitation by enlarging the limitation.
> >
> > Fixes: 4861cde46116 ("i40e: new poll mode driver")
> > Cc: sta...@dpdk.org
> >
> > Signed-off-by: Junyu Jiang <junyux.ji...@intel.com>
> > ---
> >  drivers/net/i40e/i40e_ethdev.c | 47
> > ++++++++++++++++++++++++++++++++++
> >  drivers/net/i40e/i40e_ethdev.h |  9 +++++++
> >  2 files changed, 56 insertions(+)
> >
> > diff --git a/drivers/net/i40e/i40e_ethdev.c
> > b/drivers/net/i40e/i40e_ethdev.c index 11c02b188..e3d4b7f4f 100644
> > --- a/drivers/net/i40e/i40e_ethdev.c
> > +++ b/drivers/net/i40e/i40e_ethdev.c
> > @@ -3070,6 +3070,13 @@ 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);
> > +/* enlarge the limitation when rx_bytes overflowed */ if
> > +(vsi->offset_loaded) { if (I40E_RXTX_BYTES_LOW(vsi->old_rx_bytes) >
> > +nes->rx_bytes)
> > +nes->rx_bytes += (uint64_t)1 << I40E_48_BIT_WIDTH; rx_bytes +=
> > +nes->I40E_RXTX_BYTES_HIGH(vsi->old_rx_bytes);
> > +}
> > +vsi->old_rx_bytes = nes->rx_bytes;
> >  /* exclude CRC bytes */
> >  nes->rx_bytes -= (nes->rx_unicast + nes->rx_multicast +
> >  nes->rx_broadcast) * RTE_ETHER_CRC_LEN; @@ -3096,6 +3103,13 @@
> > i40e_update_vsi_stats(struct i40e_vsi *vsi)
> >  /* GLV_TDPC not supported */
> >  i40e_stat_update_32(hw, I40E_GLV_TEPC(idx), vsi->offset_loaded,
> >      &oes->tx_errors, &nes->tx_errors);
> > +/* enlarge the limitation when tx_bytes overflowed */ if
> > +(vsi->offset_loaded) { if (I40E_RXTX_BYTES_LOW(vsi->old_tx_bytes) >
> > +nes->tx_bytes)
> > +nes->tx_bytes += (uint64_t)1 << I40E_48_BIT_WIDTH; tx_bytes +=
> > +nes->I40E_RXTX_BYTES_HIGH(vsi->old_tx_bytes);
> > +}
> > +vsi->old_rx_bytes = nes->rx_bytes;
> 
> It should be tx, right?
> 
You are right, it will be fixed in V2.
> >  vsi->offset_loaded = true;
> >

Reply via email to