Preparation for introducing adaptive TX to net DIM.

Signed-off-by: Tal Gilboa <ta...@mellanox.com>
---
 drivers/net/ethernet/broadcom/bcmsysport.c        |  6 +++---
 drivers/net/ethernet/broadcom/bnxt/bnxt_dim.c     |  8 ++++----
 drivers/net/ethernet/broadcom/genet/bcmgenet.c    |  6 +++---
 drivers/net/ethernet/mellanox/mlx5/core/en_dim.c  |  6 +++---
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c |  6 ++++--
 include/linux/net_dim.h                           | 12 ++++++------
 6 files changed, 23 insertions(+), 21 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/bcmsysport.c 
b/drivers/net/ethernet/broadcom/bcmsysport.c
index 4a75b1d..98c5183 100644
--- a/drivers/net/ethernet/broadcom/bcmsysport.c
+++ b/drivers/net/ethernet/broadcom/bcmsysport.c
@@ -654,7 +654,7 @@ static int bcm_sysport_set_coalesce(struct net_device *dev,
        pkts = priv->rx_max_coalesced_frames;
 
        if (ec->use_adaptive_rx_coalesce && !priv->dim.use_dim) {
-               moder = net_dim_get_def_profile(priv->dim.dim.mode);
+               moder = net_dim_get_def_rx_moderation(priv->dim.dim.mode);
                usecs = moder.usec;
                pkts = moder.pkts;
        }
@@ -1064,7 +1064,7 @@ static void bcm_sysport_dim_work(struct work_struct *work)
        struct bcm_sysport_priv *priv =
                        container_of(ndim, struct bcm_sysport_priv, dim);
        struct net_dim_cq_moder cur_profile =
-                               net_dim_get_profile(dim->mode, dim->profile_ix);
+                               net_dim_get_rx_moderation(dim->mode, 
dim->profile_ix);
 
        bcm_sysport_set_rx_coalesce(priv, cur_profile.usec, cur_profile.pkts);
        dim->state = NET_DIM_START_MEASURE;
@@ -1436,7 +1436,7 @@ static void bcm_sysport_init_rx_coalesce(struct 
bcm_sysport_priv *priv)
 
        /* If DIM was enabled, re-apply default parameters */
        if (dim->use_dim) {
-               moder = net_dim_get_def_profile(dim->dim.mode);
+               moder = net_dim_get_def_rx_moderation(dim->dim.mode);
                usecs = moder.usec;
                pkts = moder.pkts;
        }
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_dim.c 
b/drivers/net/ethernet/broadcom/bnxt/bnxt_dim.c
index 408dd19..afa97c8 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_dim.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_dim.c
@@ -21,11 +21,11 @@ void bnxt_dim_work(struct work_struct *work)
        struct bnxt_napi *bnapi = container_of(cpr,
                                               struct bnxt_napi,
                                               cp_ring);
-       struct net_dim_cq_moder cur_profile = net_dim_get_profile(dim->mode,
-                                                                 
dim->profile_ix);
+       struct net_dim_cq_moder cur_moder =
+               net_dim_get_rx_moderation(dim->mode, dim->profile_ix);
 
-       cpr->rx_ring_coal.coal_ticks = cur_profile.usec;
-       cpr->rx_ring_coal.coal_bufs = cur_profile.pkts;
+       cpr->rx_ring_coal.coal_ticks = cur_moder.usec;
+       cpr->rx_ring_coal.coal_bufs = cur_moder.pkts;
 
        bnxt_hwrm_set_ring_coal(bnapi->bp, bnapi);
        dim->state = NET_DIM_START_MEASURE;
diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c 
b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
index 264fb37..3c3b780 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -652,7 +652,7 @@ static void bcmgenet_set_ring_rx_coalesce(struct 
bcmgenet_rx_ring *ring,
        pkts = ring->rx_max_coalesced_frames;
 
        if (ec->use_adaptive_rx_coalesce && !ring->dim.use_dim) {
-               moder = net_dim_get_def_profile(ring->dim.dim.mode);
+               moder = net_dim_get_def_rx_moderation(ring->dim.dim.mode);
                usecs = moder.usec;
                pkts = moder.pkts;
        }
@@ -1924,7 +1924,7 @@ static void bcmgenet_dim_work(struct work_struct *work)
        struct bcmgenet_rx_ring *ring =
                        container_of(ndim, struct bcmgenet_rx_ring, dim);
        struct net_dim_cq_moder cur_profile =
-                       net_dim_get_profile(dim->mode, dim->profile_ix);
+                       net_dim_get_rx_moderation(dim->mode, dim->profile_ix);
 
        bcmgenet_set_rx_coalesce(ring, cur_profile.usec, cur_profile.pkts);
        dim->state = NET_DIM_START_MEASURE;
@@ -2101,7 +2101,7 @@ static void bcmgenet_init_rx_coalesce(struct 
bcmgenet_rx_ring *ring)
 
        /* If DIM was enabled, re-apply default parameters */
        if (dim->use_dim) {
-               moder = net_dim_get_def_profile(dim->dim.mode);
+               moder = net_dim_get_def_rx_moderation(dim->dim.mode);
                usecs = moder.usec;
                pkts = moder.pkts;
        }
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_dim.c 
b/drivers/net/ethernet/mellanox/mlx5/core/en_dim.c
index 602851a..1b286e1 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_dim.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_dim.c
@@ -38,11 +38,11 @@ void mlx5e_rx_dim_work(struct work_struct *work)
        struct net_dim *dim = container_of(work, struct net_dim,
                                           work);
        struct mlx5e_rq *rq = container_of(dim, struct mlx5e_rq, dim);
-       struct net_dim_cq_moder cur_profile = net_dim_get_profile(dim->mode,
-                                                                 
dim->profile_ix);
+       struct net_dim_cq_moder cur_moder =
+               net_dim_get_rx_moderation(dim->mode, dim->profile_ix);
 
        mlx5_core_modify_cq_moderation(rq->mdev, &rq->cq.mcq,
-                                      cur_profile.usec, cur_profile.pkts);
+                                      cur_moder.usec, cur_moder.pkts);
 
        dim->state = NET_DIM_START_MEASURE;
 }
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c 
b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
index 0aab3af..37a89b7 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
@@ -4107,12 +4107,14 @@ void mlx5e_set_rx_cq_mode_params(struct mlx5e_params 
*params, u8 cq_period_mode)
                switch (cq_period_mode) {
                case MLX5_CQ_PERIOD_MODE_START_FROM_CQE:
                        params->rx_cq_moderation =
-                               
net_dim_get_def_profile(NET_DIM_CQ_PERIOD_MODE_START_FROM_CQE);
+                               net_dim_get_def_rx_moderation(
+                                       NET_DIM_CQ_PERIOD_MODE_START_FROM_CQE);
                        break;
                case MLX5_CQ_PERIOD_MODE_START_FROM_EQE:
                default:
                        params->rx_cq_moderation =
-                               
net_dim_get_def_profile(NET_DIM_CQ_PERIOD_MODE_START_FROM_EQE);
+                               net_dim_get_def_rx_moderation(
+                                       NET_DIM_CQ_PERIOD_MODE_START_FROM_EQE);
                }
        }
 
diff --git a/include/linux/net_dim.h b/include/linux/net_dim.h
index 29ed8fd..7ca3c4d 100644
--- a/include/linux/net_dim.h
+++ b/include/linux/net_dim.h
@@ -129,17 +129,17 @@ enum {
        NET_DIM_CQE_PROFILES,
 };
 
-static inline struct net_dim_cq_moder net_dim_get_profile(u8 cq_period_mode,
-                                                         int ix)
+static inline struct net_dim_cq_moder
+net_dim_get_rx_moderation(u8 cq_period_mode, int ix)
 {
-       struct net_dim_cq_moder cq_moder;
+       struct net_dim_cq_moder cq_moder = profile[cq_period_mode][ix];
 
-       cq_moder = profile[cq_period_mode][ix];
        cq_moder.cq_period_mode = cq_period_mode;
        return cq_moder;
 }
 
-static inline struct net_dim_cq_moder net_dim_get_def_profile(u8 
rx_cq_period_mode)
+static inline struct net_dim_cq_moder
+net_dim_get_def_rx_moderation(u8 rx_cq_period_mode)
 {
        int default_profile_ix;
 
@@ -148,7 +148,7 @@ static inline struct net_dim_cq_moder 
net_dim_get_def_profile(u8 rx_cq_period_mo
        else /* NET_DIM_CQ_PERIOD_MODE_START_FROM_EQE */
                default_profile_ix = NET_DIM_DEF_PROFILE_EQE;
 
-       return net_dim_get_profile(rx_cq_period_mode, default_profile_ix);
+       return net_dim_get_rx_moderation(rx_cq_period_mode, default_profile_ix);
 }
 
 static inline bool net_dim_on_top(struct net_dim *dim)
-- 
1.8.3.1

Reply via email to