[v2,03/37] net/mvpp2: fix Rx/Tx bytes statistics

Message ID 20210122191925.24308-4-lironh@marvell.com (mailing list archive)
State Superseded, archived
Delegated to: Jerin Jacob
Headers
Series net/mvpp2: misc updates |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Liron Himi Jan. 22, 2021, 7:18 p.m. UTC
  From: Yuri Chipchev <yuric@marvell.com>

4B of CRC was not included in the bytes statistics

Fixes: bdffe0c70 ("net/mrvl: support basic stats")
Cc: stable@dpdk.org

Signed-off-by: Yuri Chipchev <yuric@marvell.com>
Reviewed-by: Liron Himi <lironh@marvell.com>
---
 drivers/net/mvpp2/mrvl_ethdev.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
  

Comments

Ferruh Yigit Jan. 26, 2021, 5:02 p.m. UTC | #1
On 1/22/2021 7:18 PM, lironh@marvell.com wrote:
> From: Yuri Chipchev <yuric@marvell.com>
> 
> 4B of CRC was not included in the bytes statistics
> 
> Fixes: bdffe0c70 ("net/mrvl: support basic stats")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Yuri Chipchev <yuric@marvell.com>
> Reviewed-by: Liron Himi <lironh@marvell.com>
> ---
>   drivers/net/mvpp2/mrvl_ethdev.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/mvpp2/mrvl_ethdev.c b/drivers/net/mvpp2/mrvl_ethdev.c
> index bfe496ff7..a1a3c0e31 100644
> --- a/drivers/net/mvpp2/mrvl_ethdev.c
> +++ b/drivers/net/mvpp2/mrvl_ethdev.c
> @@ -1278,7 +1278,6 @@ mrvl_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
>   				       rx_stats.drop_fullq +
>   				       rx_stats.drop_bm +
>   				       rxq->drop_mac;
> -		stats->ibytes += rxq->bytes_recv;
>   		drop_mac += rxq->drop_mac;
>   	}
>   
> @@ -1306,7 +1305,6 @@ mrvl_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
>   
>   		stats->q_opackets[idx] = tx_stats.deq_desc;
>   		stats->q_obytes[idx] = txq->bytes_sent;
> -		stats->obytes += txq->bytes_sent;
>   	}
>   
>   	ret = pp2_ppio_get_statistics(priv->ppio, &ppio_stats, 0);
> @@ -1315,6 +1313,8 @@ mrvl_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
>   		return ret;
>   	}
>   
> +	stats->ibytes += ppio_stats.rx_bytes;
> +	stats->obytes += ppio_stats.tx_bytes;
>   	stats->ipackets += ppio_stats.rx_packets - drop_mac;
>   	stats->opackets += ppio_stats.tx_packets;
>   	stats->imissed += ppio_stats.rx_fullq_dropped +
> 

Is this patch adding CRC to the stats? If so that is wrong, stats should not 
have the CRC.

A recent clarification from Andrew:
https://patches.dpdk.org/patch/86975/
  
Liron Himi Jan. 26, 2021, 5:25 p.m. UTC | #2
-----Original Message-----
From: Ferruh Yigit <ferruh.yigit@intel.com> 
Sent: Tuesday, 26 January 2021 19:03
To: Liron Himi <lironh@marvell.com>; Jerin Jacob Kollanukkaran <jerinj@marvell.com>
Cc: dev@dpdk.org; Yuri Chipchev <yuric@marvell.com>; stable@dpdk.org; Andrew Rybchenko <arybchenko@solarflare.com>
Subject: [EXT] Re: [dpdk-stable] [PATCH v2 03/37] net/mvpp2: fix Rx/Tx bytes statistics

External Email

----------------------------------------------------------------------
On 1/22/2021 7:18 PM, lironh@marvell.com wrote:
> From: Yuri Chipchev <yuric@marvell.com>
> 
> 4B of CRC was not included in the bytes statistics
> 
> Fixes: bdffe0c70 ("net/mrvl: support basic stats")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Yuri Chipchev <yuric@marvell.com>
> Reviewed-by: Liron Himi <lironh@marvell.com>
> ---
>   drivers/net/mvpp2/mrvl_ethdev.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/mvpp2/mrvl_ethdev.c 
> b/drivers/net/mvpp2/mrvl_ethdev.c index bfe496ff7..a1a3c0e31 100644
> --- a/drivers/net/mvpp2/mrvl_ethdev.c
> +++ b/drivers/net/mvpp2/mrvl_ethdev.c
> @@ -1278,7 +1278,6 @@ mrvl_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
>   				       rx_stats.drop_fullq +
>   				       rx_stats.drop_bm +
>   				       rxq->drop_mac;
> -		stats->ibytes += rxq->bytes_recv;
>   		drop_mac += rxq->drop_mac;
>   	}
>   
> @@ -1306,7 +1305,6 @@ mrvl_stats_get(struct rte_eth_dev *dev, struct 
> rte_eth_stats *stats)
>   
>   		stats->q_opackets[idx] = tx_stats.deq_desc;
>   		stats->q_obytes[idx] = txq->bytes_sent;
> -		stats->obytes += txq->bytes_sent;
>   	}
>   
>   	ret = pp2_ppio_get_statistics(priv->ppio, &ppio_stats, 0); @@ 
> -1315,6 +1313,8 @@ mrvl_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
>   		return ret;
>   	}
>   
> +	stats->ibytes += ppio_stats.rx_bytes;
> +	stats->obytes += ppio_stats.tx_bytes;
>   	stats->ipackets += ppio_stats.rx_packets - drop_mac;
>   	stats->opackets += ppio_stats.tx_packets;
>   	stats->imissed += ppio_stats.rx_fullq_dropped +
> 

Is this patch adding CRC to the stats? If so that is wrong, stats should not have the CRC.

A recent clarification from Andrew:
https://urldefense.proofpoint.com/v2/url?u=https-3A__patches.dpdk.org_patch_86975_&d=DwIDaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=M6lEONY3jVnAkBjt0yC6oAsT7Jn2HI7LhNHCQYlnx1Q&m=iYhQSv2FUrmxLNQcxo6cAiLpoeqeTx1mQKadLot0jh0&s=lYaS0RY6n4QOlhzd3Z9PTxtR42lbqxPt1Pm1uODpWJg&e= 

[L.H.] okay, so based on this new clarification, this patch should not be merged to both next and stable branches.
thanks
  
Ferruh Yigit Jan. 26, 2021, 5:29 p.m. UTC | #3
On 1/26/2021 5:25 PM, Liron Himi wrote:
> 
> 
> -----Original Message-----
> From: Ferruh Yigit <ferruh.yigit@intel.com>
> Sent: Tuesday, 26 January 2021 19:03
> To: Liron Himi <lironh@marvell.com>; Jerin Jacob Kollanukkaran <jerinj@marvell.com>
> Cc: dev@dpdk.org; Yuri Chipchev <yuric@marvell.com>; stable@dpdk.org; Andrew Rybchenko <arybchenko@solarflare.com>
> Subject: [EXT] Re: [dpdk-stable] [PATCH v2 03/37] net/mvpp2: fix Rx/Tx bytes statistics
> 
> External Email
> 
> ----------------------------------------------------------------------
> On 1/22/2021 7:18 PM, lironh@marvell.com wrote:
>> From: Yuri Chipchev <yuric@marvell.com>
>>
>> 4B of CRC was not included in the bytes statistics
>>
>> Fixes: bdffe0c70 ("net/mrvl: support basic stats")
>> Cc: stable@dpdk.org
>>
>> Signed-off-by: Yuri Chipchev <yuric@marvell.com>
>> Reviewed-by: Liron Himi <lironh@marvell.com>
>> ---
>>    drivers/net/mvpp2/mrvl_ethdev.c | 4 ++--
>>    1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/net/mvpp2/mrvl_ethdev.c
>> b/drivers/net/mvpp2/mrvl_ethdev.c index bfe496ff7..a1a3c0e31 100644
>> --- a/drivers/net/mvpp2/mrvl_ethdev.c
>> +++ b/drivers/net/mvpp2/mrvl_ethdev.c
>> @@ -1278,7 +1278,6 @@ mrvl_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
>>    				       rx_stats.drop_fullq +
>>    				       rx_stats.drop_bm +
>>    				       rxq->drop_mac;
>> -		stats->ibytes += rxq->bytes_recv;
>>    		drop_mac += rxq->drop_mac;
>>    	}
>>    
>> @@ -1306,7 +1305,6 @@ mrvl_stats_get(struct rte_eth_dev *dev, struct
>> rte_eth_stats *stats)
>>    
>>    		stats->q_opackets[idx] = tx_stats.deq_desc;
>>    		stats->q_obytes[idx] = txq->bytes_sent;
>> -		stats->obytes += txq->bytes_sent;
>>    	}
>>    
>>    	ret = pp2_ppio_get_statistics(priv->ppio, &ppio_stats, 0); @@
>> -1315,6 +1313,8 @@ mrvl_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
>>    		return ret;
>>    	}
>>    
>> +	stats->ibytes += ppio_stats.rx_bytes;
>> +	stats->obytes += ppio_stats.tx_bytes;
>>    	stats->ipackets += ppio_stats.rx_packets - drop_mac;
>>    	stats->opackets += ppio_stats.tx_packets;
>>    	stats->imissed += ppio_stats.rx_fullq_dropped +
>>
> 
> Is this patch adding CRC to the stats? If so that is wrong, stats should not have the CRC.
> 
> A recent clarification from Andrew:
> https://urldefense.proofpoint.com/v2/url?u=https-3A__patches.dpdk.org_patch_86975_&d=DwIDaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=M6lEONY3jVnAkBjt0yC6oAsT7Jn2HI7LhNHCQYlnx1Q&m=iYhQSv2FUrmxLNQcxo6cAiLpoeqeTx1mQKadLot0jh0&s=lYaS0RY6n4QOlhzd3Z9PTxtR42lbqxPt1Pm1uODpWJg&e=
> 
> [L.H.] okay, so based on this new clarification, this patch should not be merged to both next and stable branches.
> thanks
> 

sure, I can drop it in next-net.
  

Patch

diff --git a/drivers/net/mvpp2/mrvl_ethdev.c b/drivers/net/mvpp2/mrvl_ethdev.c
index bfe496ff7..a1a3c0e31 100644
--- a/drivers/net/mvpp2/mrvl_ethdev.c
+++ b/drivers/net/mvpp2/mrvl_ethdev.c
@@ -1278,7 +1278,6 @@  mrvl_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
 				       rx_stats.drop_fullq +
 				       rx_stats.drop_bm +
 				       rxq->drop_mac;
-		stats->ibytes += rxq->bytes_recv;
 		drop_mac += rxq->drop_mac;
 	}
 
@@ -1306,7 +1305,6 @@  mrvl_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
 
 		stats->q_opackets[idx] = tx_stats.deq_desc;
 		stats->q_obytes[idx] = txq->bytes_sent;
-		stats->obytes += txq->bytes_sent;
 	}
 
 	ret = pp2_ppio_get_statistics(priv->ppio, &ppio_stats, 0);
@@ -1315,6 +1313,8 @@  mrvl_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
 		return ret;
 	}
 
+	stats->ibytes += ppio_stats.rx_bytes;
+	stats->obytes += ppio_stats.tx_bytes;
 	stats->ipackets += ppio_stats.rx_packets - drop_mac;
 	stats->opackets += ppio_stats.tx_packets;
 	stats->imissed += ppio_stats.rx_fullq_dropped +