diff mbox

[net,1/6] net/mlx4_en: Do not count dropped packets twice

Message ID 1455634911-31206-2-git-send-email-ogerlitz@mellanox.com
State Changes Requested, archived
Delegated to: David Miller
Headers show

Commit Message

Or Gerlitz Feb. 16, 2016, 3:01 p.m. UTC
From: Amir Vadai <amir@vadai.me>

RdropOvflw counter was mistakenly copied into rx_missed_errors. Because
of that it was counted twice for the device dropped packets accounting.

Fixes: c27a02cd94d6 ('mlx4_en: Add driver for Mellanox ConnectX 10GbE NIC')
Signed-off-by: Amir Vadai <amir@vadai.me>
Signed-off-by: Eugenia Emantayev <eugenia@mellanox.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
---
 drivers/net/ethernet/mellanox/mlx4/en_port.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Rick Jones Feb. 16, 2016, 6:31 p.m. UTC | #1
On 02/16/2016 07:01 AM, Or Gerlitz wrote:
> From: Amir Vadai <amir@vadai.me>
>
> RdropOvflw counter was mistakenly copied into rx_missed_errors. Because
> of that it was counted twice for the device dropped packets accounting.
>
> Fixes: c27a02cd94d6 ('mlx4_en: Add driver for Mellanox ConnectX 10GbE NIC')
> Signed-off-by: Amir Vadai <amir@vadai.me>
> Signed-off-by: Eugenia Emantayev <eugenia@mellanox.com>
> Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
> ---
>   drivers/net/ethernet/mellanox/mlx4/en_port.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/mellanox/mlx4/en_port.c b/drivers/net/ethernet/mellanox/mlx4/en_port.c
> index ee99e67..7b511a5 100644
> --- a/drivers/net/ethernet/mellanox/mlx4/en_port.c
> +++ b/drivers/net/ethernet/mellanox/mlx4/en_port.c
> @@ -242,7 +242,7 @@ int mlx4_en_DUMP_ETH_STATS(struct mlx4_en_dev *mdev, u8 port, u8 reset)
>   	stats->rx_crc_errors = be32_to_cpu(mlx4_en_stats->RCRC);
>   	stats->rx_frame_errors = 0;
>   	stats->rx_fifo_errors = be32_to_cpu(mlx4_en_stats->RdropOvflw);
> -	stats->rx_missed_errors = be32_to_cpu(mlx4_en_stats->RdropOvflw);
> +	stats->rx_missed_errors = 0;
>   	stats->tx_aborted_errors = 0;
>   	stats->tx_carrier_errors = 0;
>   	stats->tx_fifo_errors = 0;
>

I'm still not clear on when an Acked-by is appropriate, but given that 
this has been a non-trivial frustration for a long time, a hearty 
endorsement from me.  Perhaps not important enough but it would be nice 
to have it flow back a release or two.

That said, should mlx4_en_stats->RdropOvflw still be going into both 
rx_fifo_errors and rx_over_errors?

         stats->rx_over_errors = be32_to_cpu(mlx4_en_stats->RdropOvflw);
         stats->rx_crc_errors = be32_to_cpu(mlx4_en_stats->RCRC);
         stats->rx_frame_errors = 0;
         stats->rx_fifo_errors = be32_to_cpu(mlx4_en_stats->RdropOvflw);

happy benchmarking,

rick jones
Or Gerlitz Feb. 17, 2016, 10:19 a.m. UTC | #2
On 2/16/2016 8:31 PM, Rick Jones wrote:
>
> I'm still not clear on when an Acked-by is appropriate, but given that 
> this has been a non-trivial frustration for a long time, a hearty 
> endorsement from me.  Perhaps not important enough but it would be 
> nice to have it flow back a release or two.

sure, will ask stable inclusion as well

>
> That said, should mlx4_en_stats->RdropOvflw still be going into both 
> rx_fifo_errors and rx_over_errors?
>
>         stats->rx_over_errors = be32_to_cpu(mlx4_en_stats->RdropOvflw);
>         stats->rx_crc_errors = be32_to_cpu(mlx4_en_stats->RCRC);
>         stats->rx_frame_errors = 0;
>         stats->rx_fifo_errors = be32_to_cpu(mlx4_en_stats->RdropOvflw);

yep, point taken, we will leave it only for the over ones, thanks for 
pointing this out


Or.
diff mbox

Patch

diff --git a/drivers/net/ethernet/mellanox/mlx4/en_port.c b/drivers/net/ethernet/mellanox/mlx4/en_port.c
index ee99e67..7b511a5 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_port.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_port.c
@@ -242,7 +242,7 @@  int mlx4_en_DUMP_ETH_STATS(struct mlx4_en_dev *mdev, u8 port, u8 reset)
 	stats->rx_crc_errors = be32_to_cpu(mlx4_en_stats->RCRC);
 	stats->rx_frame_errors = 0;
 	stats->rx_fifo_errors = be32_to_cpu(mlx4_en_stats->RdropOvflw);
-	stats->rx_missed_errors = be32_to_cpu(mlx4_en_stats->RdropOvflw);
+	stats->rx_missed_errors = 0;
 	stats->tx_aborted_errors = 0;
 	stats->tx_carrier_errors = 0;
 	stats->tx_fifo_errors = 0;