[01/10] common/cnxk: sync VF root weight with kernel
Checks
Commit Message
From: Satha Rao <skoteshwar@marvell.com>
By default set VF root scheduling weight same as other kernel
configured VFs. Also fix a compilation issue when cflags has
-Werror=shadow=compatible-local.
Signed-off-by: Satha Rao <skoteshwar@marvell.com>
---
drivers/common/cnxk/roc_nix.h | 1 +
drivers/common/cnxk/roc_nix_queue.c | 3 ++-
drivers/common/cnxk/roc_nix_tm.c | 6 +++++-
3 files changed, 8 insertions(+), 2 deletions(-)
@@ -473,6 +473,7 @@ struct roc_nix {
bool force_rx_aura_bp;
bool custom_meta_aura_ena;
bool rx_inj_ena;
+ uint32_t root_sched_weight;
/* End of input parameters */
/* LMT line base for "Per Core Tx LMT line" mode*/
uintptr_t lmt_base;
@@ -1030,7 +1030,8 @@ sqb_pool_populate(struct roc_nix *roc_nix, struct roc_nix_sq *sq)
thr = PLT_DIV_CEIL((nb_sqb_bufs * ROC_NIX_SQB_THRESH), 100);
nb_sqb_bufs += NIX_SQB_PREFETCH;
/* Clamp up the SQB count */
- nb_sqb_bufs = PLT_MIN(roc_nix->max_sqb_count, (uint16_t)PLT_MAX(NIX_DEF_SQB, nb_sqb_bufs));
+ nb_sqb_bufs = PLT_MAX(NIX_DEF_SQB, nb_sqb_bufs);
+ nb_sqb_bufs = PLT_MIN(roc_nix->max_sqb_count, (uint16_t)nb_sqb_bufs);
sq->nb_sqb_bufs = nb_sqb_bufs;
sq->sqes_per_sqb_log2 = (uint16_t)plt_log2_u32(sqes_per_sqb);
@@ -1589,7 +1589,11 @@ nix_tm_prepare_default_tree(struct roc_nix *roc_nix)
node->id = nonleaf_id;
node->parent_id = parent;
node->priority = 0;
- node->weight = NIX_TM_DFLT_RR_WT;
+ /* Default VF root RR_QUANTUM is in sync with kernel */
+ if (lvl == ROC_TM_LVL_ROOT && !nix_tm_have_tl1_access(nix))
+ node->weight = roc_nix->root_sched_weight;
+ else
+ node->weight = NIX_TM_DFLT_RR_WT;
node->shaper_profile_id = ROC_NIX_TM_SHAPER_PROFILE_NONE;
node->lvl = lvl;
node->tree = ROC_NIX_TM_DEFAULT;