Let rx_out_of_buffer be a 32-bit counter in mlx5en(4).

This fixes counting issues when the firmware resets the counter during
allocation of the counter set where the counter belongs.

MFC after:	3 days
Sponsored by:	Mellanox Technologies
This commit is contained in:
Hans Petter Selasky 2019-05-08 10:53:25 +00:00
parent c29b90ba68
commit 752b8aabfa
2 changed files with 1 additions and 5 deletions

View File

@ -196,7 +196,6 @@ struct mlx5e_vport_stats {
struct sysctl_ctx_list ctx; struct sysctl_ctx_list ctx;
u64 arg [0]; u64 arg [0];
MLX5E_VPORT_STATS(MLX5E_STATS_VAR) MLX5E_VPORT_STATS(MLX5E_STATS_VAR)
u32 rx_out_of_buffer_prev;
}; };
#define MLX5E_PPORT_IEEE802_3_STATS(m) \ #define MLX5E_PPORT_IEEE802_3_STATS(m) \

View File

@ -593,10 +593,7 @@ mlx5e_update_stats_locked(struct mlx5e_priv *priv)
if (test_bit(MLX5E_STATE_OPENED, &priv->state) != 0 && if (test_bit(MLX5E_STATE_OPENED, &priv->state) != 0 &&
mlx5_vport_query_out_of_rx_buffer(mdev, priv->counter_set_id, mlx5_vport_query_out_of_rx_buffer(mdev, priv->counter_set_id,
&rx_out_of_buffer) == 0) { &rx_out_of_buffer) == 0) {
/* accumulate difference into a 64-bit counter */ s->rx_out_of_buffer = rx_out_of_buffer;
s->rx_out_of_buffer += (u64)(u32)(rx_out_of_buffer -
s->rx_out_of_buffer_prev);
s->rx_out_of_buffer_prev = rx_out_of_buffer;
} }
/* get port statistics */ /* get port statistics */