Re: [PATCH net-next v3 06/10] net/mlx5e: Change Mellanox references in DIM code
From: Saeed Mahameed <hidden>
Date: 2018-01-09 07:06:40
On 01/08/2018 10:13 PM, Andy Gospodarek wrote:
From: Andy Gospodarek <redacted> Change all appropriate mlx5_am* and MLX5_AM* references to net_dim and NET_DIM, respectively, in code that handles dynamic interrupt moderation. Also change all references from 'am' to 'dim' when used as local variables and add generic profile references. Signed-off-by: Andy Gospodarek <redacted> Acked-by: Tal Gilboa <redacted> Acked-by: Saeed Mahameed <redacted> --- drivers/net/ethernet/mellanox/mlx5/core/en.h | 9 +- drivers/net/ethernet/mellanox/mlx5/core/en_dim.c | 14 +- .../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 6 +- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 40 ++- drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c | 8 +- drivers/net/ethernet/mellanox/mlx5/core/net_dim.c | 286 ++++++++++----------- drivers/net/ethernet/mellanox/mlx5/core/net_dim.h | 63 ++--- 7 files changed, 225 insertions(+), 201 deletions(-)
[...]
#define IS_SIGNIFICANT_DIFF(val, ref) \
(((100 * abs((val) - (ref))) / (ref)) > 10) /* more than 10% difference */
-static int mlx5e_am_stats_compare(struct mlx5e_rx_am_stats *curr,
- struct mlx5e_rx_am_stats *prev)
+static int net_dim_stats_compare(struct net_dim_stats *curr,
+ struct net_dim_stats *prev)
{
if (!prev->bpms)
- return curr->bpms ? MLX5E_AM_STATS_BETTER :
- MLX5E_AM_STATS_SAME;
+ return curr->bpms ? NET_DIM_STATS_BETTER :
+ NET_DIM_STATS_SAME;
if (IS_SIGNIFICANT_DIFF(curr->bpms, prev->bpms))
- return (curr->bpms > prev->bpms) ? MLX5E_AM_STATS_BETTER :
- MLX5E_AM_STATS_WORSE;
+ return (curr->bpms > prev->bpms) ? NET_DIM_STATS_BETTER :
+ NET_DIM_STATS_WORSE;
Hey Andy, I am currently reviewing a patch internally that fixes a bug in this area, prev->ppms can be 0 and could cause IS_SIGNIFICANT_DIFF ouch ! same goes for prev->eppm, for some reason we had a broken assumption that if ppms is 0 for some reason then the bpms is 0 and the above condition will cover us. Anyway the patch will go to net, which means when this series gets accepted then net-next will fail to merge with net and we need to manually push the fix to the new DIM library. But for now I don't think anything is required for this series other than bringing this division by 0 issue and the future merge conflict to your attention.
if (IS_SIGNIFICANT_DIFF(curr->ppms, prev->ppms)) - return (curr->ppms > prev->ppms) ? MLX5E_AM_STATS_BETTER : - MLX5E_AM_STATS_WORSE; + return (curr->ppms > prev->ppms) ? NET_DIM_STATS_BETTER : + NET_DIM_STATS_WORSE; if (IS_SIGNIFICANT_DIFF(curr->epms, prev->epms)) - return (curr->epms < prev->epms) ? MLX5E_AM_STATS_BETTER : - MLX5E_AM_STATS_WORSE; + return (curr->epms < prev->epms) ? NET_DIM_STATS_BETTER : + NET_DIM_STATS_WORSE; - return MLX5E_AM_STATS_SAME; + return NET_DIM_STATS_SAME; }