From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andy Gospodarek Subject: [RFC 7/9] mlx5_en: remove Mellanox references in AM code Date: Mon, 6 Nov 2017 00:44:55 -0500 Message-ID: <1509947098-10148-10-git-send-email-andy@greyhouse.net> References: <1509947098-10148-1-git-send-email-andy@greyhouse.net> Cc: mchan@broadcom.com, saeedm@mellanox.com, Andy Gospodarek To: netdev@vger.kernel.org Return-path: Received: from mail-qt0-f195.google.com ([209.85.216.195]:49466 "EHLO mail-qt0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751461AbdKFFqY (ORCPT ); Mon, 6 Nov 2017 00:46:24 -0500 Received: by mail-qt0-f195.google.com with SMTP id k31so9597246qta.6 for ; Sun, 05 Nov 2017 21:46:23 -0800 (PST) In-Reply-To: <1509947098-10148-1-git-send-email-andy@greyhouse.net> Sender: netdev-owner@vger.kernel.org List-ID: From: Andy Gospodarek Remove all mlx5* and MLX* references to net_ and NET_, respectively in code that handles software interrupt moderation. Signed-off-by: Andy Gospodarek --- drivers/net/ethernet/mellanox/mlx5/core/en.h | 7 +- .../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 6 +- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 18 +- drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 4 +- drivers/net/ethernet/mellanox/mlx5/core/en_rx_am.c | 6 +- drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c | 2 +- .../net/ethernet/mellanox/mlx5/core/net_rx_am.c | 214 ++++++++++----------- .../net/ethernet/mellanox/mlx5/core/net_rx_am.h | 57 +++--- 8 files changed, 157 insertions(+), 157 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en.h b/drivers/net/ethernet/mellanox/mlx5/core/en.h index a9dc118..203dc7b 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en.h @@ -221,8 +221,8 @@ struct mlx5e_params { u8 num_tc; u8 rx_cq_period_mode; bool rx_cqe_compress_def; - struct mlx5e_cq_moder rx_cq_moderation; - struct mlx5e_cq_moder tx_cq_moderation; + struct net_cq_moder rx_cq_moderation; + struct net_cq_moder tx_cq_moderation; bool lro_en; u32 lro_wqe_sz; u16 tx_max_inline; @@ -505,7 +505,7 @@ struct mlx5e_rq { unsigned long state; int ix; - struct mlx5e_rx_am am; /* Adaptive Moderation */ + struct net_rx_am am; /* Adaptive Moderation */ /* XDP */ struct bpf_prog *xdp_prog; @@ -1036,4 +1036,5 @@ void mlx5e_build_nic_params(struct mlx5_core_dev *mdev, struct mlx5e_params *params, u16 max_channels); +void mlx5e_rx_am_work(struct work_struct *work); #endif /* __MLX5_EN_H__ */ diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c b/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c index b34aa8e..3955521 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c @@ -1454,11 +1454,11 @@ static int set_pflag_rx_cqe_based_moder(struct net_device *netdev, bool enable) int err = 0; rx_cq_period_mode = enable ? - MLX5_CQ_PERIOD_MODE_START_FROM_CQE : - MLX5_CQ_PERIOD_MODE_START_FROM_EQE; + NET_CQ_PERIOD_MODE_START_FROM_CQE : + NET_CQ_PERIOD_MODE_START_FROM_EQE; rx_mode_changed = rx_cq_period_mode != priv->channels.params.rx_cq_period_mode; - if (rx_cq_period_mode == MLX5_CQ_PERIOD_MODE_START_FROM_CQE && + if (rx_cq_period_mode == NET_CQ_PERIOD_MODE_START_FROM_CQE && !MLX5_CAP_GEN(mdev, cq_period_start_from_cqe)) return -EOPNOTSUPP; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c index 28ae00b..dcd96fe 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c @@ -1571,7 +1571,7 @@ static void mlx5e_destroy_cq(struct mlx5e_cq *cq) } static int mlx5e_open_cq(struct mlx5e_channel *c, - struct mlx5e_cq_moder moder, + struct net_cq_moder moder, struct mlx5e_cq_param *param, struct mlx5e_cq *cq) { @@ -1748,7 +1748,7 @@ static int mlx5e_open_channel(struct mlx5e_priv *priv, int ix, struct mlx5e_channel_param *cparam, struct mlx5e_channel **cp) { - struct mlx5e_cq_moder icocq_moder = {0, 0}; + struct net_cq_moder icocq_moder = {0, 0}; struct net_device *netdev = priv->netdev; struct mlx5e_channel *c; unsigned int irq; @@ -1987,7 +1987,7 @@ static void mlx5e_build_tx_cq_param(struct mlx5e_priv *priv, mlx5e_build_common_cq_param(priv, param); - param->cq_period_mode = MLX5_CQ_PERIOD_MODE_START_FROM_EQE; + param->cq_period_mode = NET_CQ_PERIOD_MODE_START_FROM_EQE; } static void mlx5e_build_ico_cq_param(struct mlx5e_priv *priv, @@ -2000,7 +2000,7 @@ static void mlx5e_build_ico_cq_param(struct mlx5e_priv *priv, mlx5e_build_common_cq_param(priv, param); - param->cq_period_mode = MLX5_CQ_PERIOD_MODE_START_FROM_EQE; + param->cq_period_mode = NET_CQ_PERIOD_MODE_START_FROM_EQE; } static void mlx5e_build_icosq_param(struct mlx5e_priv *priv, @@ -3996,16 +3996,16 @@ void mlx5e_set_rx_cq_mode_params(struct mlx5e_params *params, u8 cq_period_mode) params->rx_cq_moderation.usec = MLX5E_PARAMS_DEFAULT_RX_CQ_MODERATION_USEC; - if (cq_period_mode == MLX5_CQ_PERIOD_MODE_START_FROM_CQE) + if (cq_period_mode == NET_CQ_PERIOD_MODE_START_FROM_CQE) params->rx_cq_moderation.usec = MLX5E_PARAMS_DEFAULT_RX_CQ_MODERATION_USEC_FROM_CQE; if (params->rx_am_enabled) params->rx_cq_moderation = - mlx5e_am_get_def_profile(params->rx_cq_period_mode); + net_am_get_def_profile(params->rx_cq_period_mode); MLX5E_SET_PFLAG(params, MLX5E_PFLAG_RX_CQE_BASED_MODER, - params->rx_cq_period_mode == MLX5_CQ_PERIOD_MODE_START_FROM_CQE); + params->rx_cq_period_mode == NET_CQ_PERIOD_MODE_START_FROM_CQE); } u32 mlx5e_choose_lro_timeout(struct mlx5_core_dev *mdev, u32 wanted_timeout) @@ -4061,8 +4061,8 @@ void mlx5e_build_nic_params(struct mlx5_core_dev *mdev, /* CQ moderation params */ cq_period_mode = MLX5_CAP_GEN(mdev, cq_period_start_from_cqe) ? - MLX5_CQ_PERIOD_MODE_START_FROM_CQE : - MLX5_CQ_PERIOD_MODE_START_FROM_EQE; + NET_CQ_PERIOD_MODE_START_FROM_CQE : + NET_CQ_PERIOD_MODE_START_FROM_EQE; params->rx_am_enabled = MLX5_CAP_GEN(mdev, cq_moderation); mlx5e_set_rx_cq_mode_params(params, cq_period_mode); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c index 2c43606..550d05e 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c @@ -820,8 +820,8 @@ static void mlx5e_build_rep_params(struct mlx5_core_dev *mdev, struct mlx5e_params *params) { u8 cq_period_mode = MLX5_CAP_GEN(mdev, cq_period_start_from_cqe) ? - MLX5_CQ_PERIOD_MODE_START_FROM_CQE : - MLX5_CQ_PERIOD_MODE_START_FROM_EQE; + NET_CQ_PERIOD_MODE_START_FROM_CQE : + NET_CQ_PERIOD_MODE_START_FROM_EQE; params->log_sq_size = MLX5E_PARAMS_MINIMUM_LOG_SQ_SIZE; params->rq_wq_type = MLX5_WQ_TYPE_LINKED_LIST; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rx_am.c b/drivers/net/ethernet/mellanox/mlx5/core/en_rx_am.c index b9b434b..1f8fda1 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_rx_am.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rx_am.c @@ -34,15 +34,15 @@ void mlx5e_rx_am_work(struct work_struct *work) { - struct mlx5e_rx_am *am = container_of(work, struct mlx5e_rx_am, + struct net_rx_am *am = container_of(work, struct net_rx_am, work); struct mlx5e_rq *rq = container_of(am, struct mlx5e_rq, am); - struct mlx5e_cq_moder cur_profile = mlx5e_am_get_profile(am->mode, + struct net_cq_moder cur_profile = net_am_get_profile(am->mode, am->profile_ix); mlx5_core_modify_cq_moderation(rq->mdev, &rq->cq.mcq, cur_profile.usec, cur_profile.pkts); - am->state = MLX5E_AM_START_MEASURE; + am->state = NET_AM_START_MEASURE; } diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c index 8fed6c6..4f8d8d5 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c @@ -77,7 +77,7 @@ int mlx5e_napi_poll(struct napi_struct *napi, int budget) mlx5e_cq_arm(&c->sq[i].cq); if (MLX5E_TEST_BIT(c->rq.state, MLX5E_RQ_STATE_AM)) - mlx5e_rx_am(&c->rq.am, + net_rx_am(&c->rq.am, c->rq.cq.event_ctr, c->rq.stats.packets, c->rq.stats.bytes); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/net_rx_am.c b/drivers/net/ethernet/mellanox/mlx5/core/net_rx_am.c index 14cea75..37ea6d1 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/net_rx_am.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/net_rx_am.c @@ -33,22 +33,22 @@ #include "en.h" -#define MLX5E_PARAMS_AM_NUM_PROFILES 5 +#define NET_PARAMS_AM_NUM_PROFILES 5 /* Adaptive moderation profiles */ -#define MLX5E_AM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE 256 -#define MLX5E_RX_AM_DEF_PROFILE_CQE 1 -#define MLX5E_RX_AM_DEF_PROFILE_EQE 1 - -/* All profiles sizes must be MLX5E_PARAMS_AM_NUM_PROFILES */ -#define MLX5_AM_EQE_PROFILES { \ - {1, MLX5E_AM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE}, \ - {8, MLX5E_AM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE}, \ - {64, MLX5E_AM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE}, \ - {128, MLX5E_AM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE}, \ - {256, MLX5E_AM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE}, \ +#define NET_AM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE 256 +#define NET_RX_AM_DEF_PROFILE_CQE 1 +#define NET_RX_AM_DEF_PROFILE_EQE 1 + +/* All profiles sizes must be NET_PARAMS_AM_NUM_PROFILES */ +#define NET_AM_EQE_PROFILES { \ + {1, NET_AM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE}, \ + {8, NET_AM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE}, \ + {64, NET_AM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE}, \ + {128, NET_AM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE}, \ + {256, NET_AM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE}, \ } -#define MLX5_AM_CQE_PROFILES { \ +#define NET_AM_CQE_PROFILES { \ {2, 256}, \ {8, 128}, \ {16, 64}, \ @@ -56,135 +56,135 @@ {64, 64} \ } -static const struct mlx5e_cq_moder -profile[MLX5_CQ_PERIOD_NUM_MODES][MLX5E_PARAMS_AM_NUM_PROFILES] = { - MLX5_AM_EQE_PROFILES, - MLX5_AM_CQE_PROFILES, +static const struct net_cq_moder +profile[NET_CQ_PERIOD_NUM_MODES][NET_PARAMS_AM_NUM_PROFILES] = { + NET_AM_EQE_PROFILES, + NET_AM_CQE_PROFILES, }; -struct mlx5e_cq_moder mlx5e_am_get_profile(u8 cq_period_mode, int ix) +struct net_cq_moder net_am_get_profile(u8 cq_period_mode, int ix) { return profile[cq_period_mode][ix]; } -struct mlx5e_cq_moder mlx5e_am_get_def_profile(u8 rx_cq_period_mode) +struct net_cq_moder net_am_get_def_profile(u8 rx_cq_period_mode) { int default_profile_ix; - if (rx_cq_period_mode == MLX5_CQ_PERIOD_MODE_START_FROM_CQE) - default_profile_ix = MLX5E_RX_AM_DEF_PROFILE_CQE; - else /* MLX5_CQ_PERIOD_MODE_START_FROM_EQE */ - default_profile_ix = MLX5E_RX_AM_DEF_PROFILE_EQE; + if (rx_cq_period_mode == NET_CQ_PERIOD_MODE_START_FROM_CQE) + default_profile_ix = NET_RX_AM_DEF_PROFILE_CQE; + else /* NET_CQ_PERIOD_MODE_START_FROM_EQE */ + default_profile_ix = NET_RX_AM_DEF_PROFILE_EQE; return profile[rx_cq_period_mode][default_profile_ix]; } -static bool mlx5e_am_on_top(struct mlx5e_rx_am *am) +static bool net_am_on_top(struct net_rx_am *am) { switch (am->tune_state) { - case MLX5E_AM_PARKING_ON_TOP: - case MLX5E_AM_PARKING_TIRED: + case NET_AM_PARKING_ON_TOP: + case NET_AM_PARKING_TIRED: return true; - case MLX5E_AM_GOING_RIGHT: + case NET_AM_GOING_RIGHT: return (am->steps_left > 1) && (am->steps_right == 1); - default: /* MLX5E_AM_GOING_LEFT */ + default: /* NET_AM_GOING_LEFT */ return (am->steps_right > 1) && (am->steps_left == 1); } } -static void mlx5e_am_turn(struct mlx5e_rx_am *am) +static void net_am_turn(struct net_rx_am *am) { switch (am->tune_state) { - case MLX5E_AM_PARKING_ON_TOP: - case MLX5E_AM_PARKING_TIRED: + case NET_AM_PARKING_ON_TOP: + case NET_AM_PARKING_TIRED: break; - case MLX5E_AM_GOING_RIGHT: - am->tune_state = MLX5E_AM_GOING_LEFT; + case NET_AM_GOING_RIGHT: + am->tune_state = NET_AM_GOING_LEFT; am->steps_left = 0; break; - case MLX5E_AM_GOING_LEFT: - am->tune_state = MLX5E_AM_GOING_RIGHT; + case NET_AM_GOING_LEFT: + am->tune_state = NET_AM_GOING_RIGHT; am->steps_right = 0; break; } } -static int mlx5e_am_step(struct mlx5e_rx_am *am) +static int net_am_step(struct net_rx_am *am) { - if (am->tired == (MLX5E_PARAMS_AM_NUM_PROFILES * 2)) - return MLX5E_AM_TOO_TIRED; + if (am->tired == (NET_PARAMS_AM_NUM_PROFILES * 2)) + return NET_AM_TOO_TIRED; switch (am->tune_state) { - case MLX5E_AM_PARKING_ON_TOP: - case MLX5E_AM_PARKING_TIRED: + case NET_AM_PARKING_ON_TOP: + case NET_AM_PARKING_TIRED: break; - case MLX5E_AM_GOING_RIGHT: - if (am->profile_ix == (MLX5E_PARAMS_AM_NUM_PROFILES - 1)) - return MLX5E_AM_ON_EDGE; + case NET_AM_GOING_RIGHT: + if (am->profile_ix == (NET_PARAMS_AM_NUM_PROFILES - 1)) + return NET_AM_ON_EDGE; am->profile_ix++; am->steps_right++; break; - case MLX5E_AM_GOING_LEFT: + case NET_AM_GOING_LEFT: if (am->profile_ix == 0) - return MLX5E_AM_ON_EDGE; + return NET_AM_ON_EDGE; am->profile_ix--; am->steps_left++; break; } am->tired++; - return MLX5E_AM_STEPPED; + return NET_AM_STEPPED; } -static void mlx5e_am_park_on_top(struct mlx5e_rx_am *am) +static void net_am_park_on_top(struct net_rx_am *am) { am->steps_right = 0; am->steps_left = 0; am->tired = 0; - am->tune_state = MLX5E_AM_PARKING_ON_TOP; + am->tune_state = NET_AM_PARKING_ON_TOP; } -static void mlx5e_am_park_tired(struct mlx5e_rx_am *am) +static void net_am_park_tired(struct net_rx_am *am) { am->steps_right = 0; am->steps_left = 0; - am->tune_state = MLX5E_AM_PARKING_TIRED; + am->tune_state = NET_AM_PARKING_TIRED; } -static void mlx5e_am_exit_parking(struct mlx5e_rx_am *am) +static void net_am_exit_parking(struct net_rx_am *am) { - am->tune_state = am->profile_ix ? MLX5E_AM_GOING_LEFT : - MLX5E_AM_GOING_RIGHT; - mlx5e_am_step(am); + am->tune_state = am->profile_ix ? NET_AM_GOING_LEFT : + NET_AM_GOING_RIGHT; + net_am_step(am); } #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_am_stats_compare(struct net_rx_am_stats *curr, + struct net_rx_am_stats *prev) { if (!prev->bpms) - return curr->bpms ? MLX5E_AM_STATS_BETTER : - MLX5E_AM_STATS_SAME; + return curr->bpms ? NET_AM_STATS_BETTER : + NET_AM_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_AM_STATS_BETTER : + NET_AM_STATS_WORSE; 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_AM_STATS_BETTER : + NET_AM_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_AM_STATS_BETTER : + NET_AM_STATS_WORSE; - return MLX5E_AM_STATS_SAME; + return NET_AM_STATS_SAME; } -static bool mlx5e_am_decision(struct mlx5e_rx_am_stats *curr_stats, - struct mlx5e_rx_am *am) +static bool net_am_decision(struct net_rx_am_stats *curr_stats, + struct net_rx_am *am) { int prev_state = am->tune_state; int prev_ix = am->profile_ix; @@ -192,53 +192,53 @@ static bool mlx5e_am_decision(struct mlx5e_rx_am_stats *curr_stats, int step_res; switch (am->tune_state) { - case MLX5E_AM_PARKING_ON_TOP: - stats_res = mlx5e_am_stats_compare(curr_stats, &am->prev_stats); - if (stats_res != MLX5E_AM_STATS_SAME) - mlx5e_am_exit_parking(am); + case NET_AM_PARKING_ON_TOP: + stats_res = net_am_stats_compare(curr_stats, &am->prev_stats); + if (stats_res != NET_AM_STATS_SAME) + net_am_exit_parking(am); break; - case MLX5E_AM_PARKING_TIRED: + case NET_AM_PARKING_TIRED: am->tired--; if (!am->tired) - mlx5e_am_exit_parking(am); + net_am_exit_parking(am); break; - case MLX5E_AM_GOING_RIGHT: - case MLX5E_AM_GOING_LEFT: - stats_res = mlx5e_am_stats_compare(curr_stats, &am->prev_stats); - if (stats_res != MLX5E_AM_STATS_BETTER) - mlx5e_am_turn(am); + case NET_AM_GOING_RIGHT: + case NET_AM_GOING_LEFT: + stats_res = net_am_stats_compare(curr_stats, &am->prev_stats); + if (stats_res != NET_AM_STATS_BETTER) + net_am_turn(am); - if (mlx5e_am_on_top(am)) { - mlx5e_am_park_on_top(am); + if (net_am_on_top(am)) { + net_am_park_on_top(am); break; } - step_res = mlx5e_am_step(am); + step_res = net_am_step(am); switch (step_res) { - case MLX5E_AM_ON_EDGE: - mlx5e_am_park_on_top(am); + case NET_AM_ON_EDGE: + net_am_park_on_top(am); break; - case MLX5E_AM_TOO_TIRED: - mlx5e_am_park_tired(am); + case NET_AM_TOO_TIRED: + net_am_park_tired(am); break; } break; } - if ((prev_state != MLX5E_AM_PARKING_ON_TOP) || - (am->tune_state != MLX5E_AM_PARKING_ON_TOP)) + if ((prev_state != NET_AM_PARKING_ON_TOP) || + (am->tune_state != NET_AM_PARKING_ON_TOP)) am->prev_stats = *curr_stats; return am->profile_ix != prev_ix; } -static void mlx5e_am_sample(u16 event_ctr, +static void net_am_sample(u16 event_ctr, u64 packets, u64 bytes, - struct mlx5e_rx_am_sample *s) + struct net_rx_am_sample *s) { s->time = ktime_get(); s->pkt_ctr = packets; @@ -246,13 +246,13 @@ static void mlx5e_am_sample(u16 event_ctr, s->event_ctr = event_ctr; } -#define MLX5E_AM_NEVENTS 64 +#define NET_AM_NEVENTS 64 #define BITS_PER_TYPE(type) (sizeof(type) * BITS_PER_BYTE) #define BIT_GAP(bits, end, start) ((((end) - (start)) + BIT_ULL(bits)) & (BIT_ULL(bits) - 1)) -static void mlx5e_am_calc_stats(struct mlx5e_rx_am_sample *start, - struct mlx5e_rx_am_sample *end, - struct mlx5e_rx_am_stats *curr_stats) +static void net_am_calc_stats(struct net_rx_am_sample *start, + struct net_rx_am_sample *end, + struct net_rx_am_stats *curr_stats) { /* u32 holds up to 71 minutes, should be enough */ u32 delta_us = ktime_us_delta(end->time, start->time); @@ -265,39 +265,39 @@ static void mlx5e_am_calc_stats(struct mlx5e_rx_am_sample *start, curr_stats->ppms = DIV_ROUND_UP(npkts * USEC_PER_MSEC, delta_us); curr_stats->bpms = DIV_ROUND_UP(nbytes * USEC_PER_MSEC, delta_us); - curr_stats->epms = DIV_ROUND_UP(MLX5E_AM_NEVENTS * USEC_PER_MSEC, + curr_stats->epms = DIV_ROUND_UP(NET_AM_NEVENTS * USEC_PER_MSEC, delta_us); } -void mlx5e_rx_am(struct mlx5e_rx_am *am, +void net_rx_am(struct net_rx_am *am, u16 event_ctr, u64 packets, u64 bytes) { - struct mlx5e_rx_am_sample end_sample; - struct mlx5e_rx_am_stats curr_stats; + struct net_rx_am_sample end_sample; + struct net_rx_am_stats curr_stats; u16 nevents; switch (am->state) { - case MLX5E_AM_MEASURE_IN_PROGRESS: + case NET_AM_MEASURE_IN_PROGRESS: nevents = BIT_GAP(BITS_PER_TYPE(u16), event_ctr, am->start_sample.event_ctr); - if (nevents < MLX5E_AM_NEVENTS) + if (nevents < NET_AM_NEVENTS) break; - mlx5e_am_sample(event_ctr, packets, bytes, &end_sample); - mlx5e_am_calc_stats(&am->start_sample, &end_sample, + net_am_sample(event_ctr, packets, bytes, &end_sample); + net_am_calc_stats(&am->start_sample, &end_sample, &curr_stats); - if (mlx5e_am_decision(&curr_stats, am)) { - am->state = MLX5E_AM_APPLY_NEW_PROFILE; + if (net_am_decision(&curr_stats, am)) { + am->state = NET_AM_APPLY_NEW_PROFILE; schedule_work(&am->work); break; } /* fall through */ - case MLX5E_AM_START_MEASURE: - mlx5e_am_sample(event_ctr, packets, bytes, &am->start_sample); - am->state = MLX5E_AM_MEASURE_IN_PROGRESS; + case NET_AM_START_MEASURE: + net_am_sample(event_ctr, packets, bytes, &am->start_sample); + am->state = NET_AM_MEASURE_IN_PROGRESS; break; - case MLX5E_AM_APPLY_NEW_PROFILE: + case NET_AM_APPLY_NEW_PROFILE: break; } } diff --git a/drivers/net/ethernet/mellanox/mlx5/core/net_rx_am.h b/drivers/net/ethernet/mellanox/mlx5/core/net_rx_am.h index ef86bf8..aa65e79 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/net_rx_am.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/net_rx_am.h @@ -31,31 +31,31 @@ * SOFTWARE. */ -#ifndef MLX5_AM_H -#define MLX5_AM_H +#ifndef NET_AM_H +#define NET_AM_H -struct mlx5e_cq_moder { +struct net_cq_moder { u16 usec; u16 pkts; }; -struct mlx5e_rx_am_sample { +struct net_rx_am_sample { ktime_t time; u32 pkt_ctr; u32 byte_ctr; u16 event_ctr; }; -struct mlx5e_rx_am_stats { +struct net_rx_am_stats { int ppms; /* packets per msec */ int bpms; /* bytes per msec */ int epms; /* events per msec */ }; -struct mlx5e_rx_am { /* Adaptive Moderation */ +struct net_rx_am { /* Adaptive Moderation */ u8 state; - struct mlx5e_rx_am_stats prev_stats; - struct mlx5e_rx_am_sample start_sample; + struct net_rx_am_stats prev_stats; + struct net_rx_am_sample start_sample; struct work_struct work; u8 profile_ix; u8 mode; @@ -66,43 +66,42 @@ struct mlx5e_rx_am { /* Adaptive Moderation */ }; enum { - MLX5_CQ_PERIOD_MODE_START_FROM_EQE = 0x0, - MLX5_CQ_PERIOD_MODE_START_FROM_CQE = 0x1, - MLX5_CQ_PERIOD_NUM_MODES + NET_CQ_PERIOD_MODE_START_FROM_EQE = 0x0, + NET_CQ_PERIOD_MODE_START_FROM_CQE = 0x1, + NET_CQ_PERIOD_NUM_MODES }; /* Adaptive moderation logic */ enum { - MLX5E_AM_START_MEASURE, - MLX5E_AM_MEASURE_IN_PROGRESS, - MLX5E_AM_APPLY_NEW_PROFILE, + NET_AM_START_MEASURE, + NET_AM_MEASURE_IN_PROGRESS, + NET_AM_APPLY_NEW_PROFILE, }; enum { - MLX5E_AM_PARKING_ON_TOP, - MLX5E_AM_PARKING_TIRED, - MLX5E_AM_GOING_RIGHT, - MLX5E_AM_GOING_LEFT, + NET_AM_PARKING_ON_TOP, + NET_AM_PARKING_TIRED, + NET_AM_GOING_RIGHT, + NET_AM_GOING_LEFT, }; enum { - MLX5E_AM_STATS_WORSE, - MLX5E_AM_STATS_SAME, - MLX5E_AM_STATS_BETTER, + NET_AM_STATS_WORSE, + NET_AM_STATS_SAME, + NET_AM_STATS_BETTER, }; enum { - MLX5E_AM_STEPPED, - MLX5E_AM_TOO_TIRED, - MLX5E_AM_ON_EDGE, + NET_AM_STEPPED, + NET_AM_TOO_TIRED, + NET_AM_ON_EDGE, }; -void mlx5e_rx_am(struct mlx5e_rx_am *am, +void net_rx_am(struct net_rx_am *am, u16 event_ctr, u64 packets, u64 bytes); -void mlx5e_rx_am_work(struct work_struct *work); -struct mlx5e_cq_moder mlx5e_am_get_def_profile(u8 rx_cq_period_mode); -struct mlx5e_cq_moder mlx5e_am_get_profile(u8 cq_period_mode, int ix); +struct net_cq_moder net_am_get_def_profile(u8 rx_cq_period_mode); +struct net_cq_moder net_am_get_profile(u8 cq_period_mode, int ix); -#endif /* MLX5_AM_H */ +#endif /* NET_AM_H */ -- 2.7.4