net/iavf: fix Rx bytes stats

Message ID 20190717043100.46092-1-qi.z.zhang@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Qi Zhang
Headers
Series net/iavf: fix Rx bytes stats |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/mellanox-Performance-Testing success Performance Testing PASS
ci/intel-Performance-Testing success Performance Testing PASS

Commit Message

Qi Zhang July 17, 2019, 4:31 a.m. UTC
  Exclude 4 bytes CRC for rx bytes stats.
This also aligned Rx stats calculation with PF.

Fixes: f4a41a6953af ("net/avf: support stats")
Cc: stable@dpdk.org

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/iavf/iavf_ethdev.c | 1 +
 1 file changed, 1 insertion(+)
  

Comments

Stephen Hemminger July 17, 2019, 4:55 a.m. UTC | #1
On Wed, 17 Jul 2019 12:31:00 +0800
Qi Zhang <qi.z.zhang@intel.com> wrote:

> Exclude 4 bytes CRC for rx bytes stats.
> This also aligned Rx stats calculation with PF.
> 
> Fixes: f4a41a6953af ("net/avf: support stats")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
> ---
>  drivers/net/iavf/iavf_ethdev.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
> index 53dc05c78..fe75e86ab 100644
> --- a/drivers/net/iavf/iavf_ethdev.c
> +++ b/drivers/net/iavf/iavf_ethdev.c
> @@ -1047,6 +1047,7 @@ iavf_dev_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
>  		stats->imissed = pstats->rx_discards;
>  		stats->oerrors = pstats->tx_errors + pstats->tx_discards;
>  		stats->ibytes = pstats->rx_bytes;
> +		stats->ibytes -= stats->ipackets * RTE_ETHER_CRC_LEN;
>  		stats->obytes = pstats->tx_bytes;
>  	} else {
>  		PMD_DRV_LOG(ERR, "Get statistics failed");

Correct, DPDK statistics should not include CRC.

Acked-by: Stephen Hemminger <stephen@networkplumber.org>
  
Qi Zhang July 19, 2019, 12:17 a.m. UTC | #2
> -----Original Message-----
> From: Stephen Hemminger [mailto:stephen@networkplumber.org]
> Sent: Wednesday, July 17, 2019 12:56 PM
> To: Zhang, Qi Z <qi.z.zhang@intel.com>
> Cc: Wu, Jingjing <jingjing.wu@intel.com>; Lu, Wenzhuo
> <wenzhuo.lu@intel.com>; dev@dpdk.org; stable@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] net/iavf: fix Rx bytes stats
> 
> On Wed, 17 Jul 2019 12:31:00 +0800
> Qi Zhang <qi.z.zhang@intel.com> wrote:
> 
> > Exclude 4 bytes CRC for rx bytes stats.
> > This also aligned Rx stats calculation with PF.
> >
> > Fixes: f4a41a6953af ("net/avf: support stats")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
> > ---
> >  drivers/net/iavf/iavf_ethdev.c | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/net/iavf/iavf_ethdev.c
> > b/drivers/net/iavf/iavf_ethdev.c index 53dc05c78..fe75e86ab 100644
> > --- a/drivers/net/iavf/iavf_ethdev.c
> > +++ b/drivers/net/iavf/iavf_ethdev.c
> > @@ -1047,6 +1047,7 @@ iavf_dev_stats_get(struct rte_eth_dev *dev,
> struct rte_eth_stats *stats)
> >  		stats->imissed = pstats->rx_discards;
> >  		stats->oerrors = pstats->tx_errors + pstats->tx_discards;
> >  		stats->ibytes = pstats->rx_bytes;
> > +		stats->ibytes -= stats->ipackets * RTE_ETHER_CRC_LEN;
> >  		stats->obytes = pstats->tx_bytes;
> >  	} else {
> >  		PMD_DRV_LOG(ERR, "Get statistics failed");
> 
> Correct, DPDK statistics should not include CRC.
> 
> Acked-by: Stephen Hemminger <stephen@networkplumber.org>

Applied to dpdk-next-net-intel.

Thanks
Qi
  
Andrew Rybchenko Aug. 5, 2019, 10:52 a.m. UTC | #3
On 7/17/19 7:55 AM, Stephen Hemminger wrote:
> On Wed, 17 Jul 2019 12:31:00 +0800
> Qi Zhang <qi.z.zhang@intel.com> wrote:
>
>> Exclude 4 bytes CRC for rx bytes stats.
>> This also aligned Rx stats calculation with PF.
>>
>> Fixes: f4a41a6953af ("net/avf: support stats")
>> Cc: stable@dpdk.org
>>
>> Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
>> ---
>>   drivers/net/iavf/iavf_ethdev.c | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
>> index 53dc05c78..fe75e86ab 100644
>> --- a/drivers/net/iavf/iavf_ethdev.c
>> +++ b/drivers/net/iavf/iavf_ethdev.c
>> @@ -1047,6 +1047,7 @@ iavf_dev_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
>>   		stats->imissed = pstats->rx_discards;
>>   		stats->oerrors = pstats->tx_errors + pstats->tx_discards;
>>   		stats->ibytes = pstats->rx_bytes;
>> +		stats->ibytes -= stats->ipackets * RTE_ETHER_CRC_LEN;
>>   		stats->obytes = pstats->tx_bytes;
>>   	} else {
>>   		PMD_DRV_LOG(ERR, "Get statistics failed");
> Correct, DPDK statistics should not include CRC.

Stephen, Thomas, Ferruh,

is it documented somewhere? May be we should update fields
description and rte_eth_stats_get() which mentions these fields
as well to highlight it?

Thanks,
Andrew.
  

Patch

diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
index 53dc05c78..fe75e86ab 100644
--- a/drivers/net/iavf/iavf_ethdev.c
+++ b/drivers/net/iavf/iavf_ethdev.c
@@ -1047,6 +1047,7 @@  iavf_dev_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
 		stats->imissed = pstats->rx_discards;
 		stats->oerrors = pstats->tx_errors + pstats->tx_discards;
 		stats->ibytes = pstats->rx_bytes;
+		stats->ibytes -= stats->ipackets * RTE_ETHER_CRC_LEN;
 		stats->obytes = pstats->tx_bytes;
 	} else {
 		PMD_DRV_LOG(ERR, "Get statistics failed");