Skip to content

Commit

Permalink
net/hns3: fix non-zero weight for disabled TC
Browse files Browse the repository at this point in the history
[ upstream commit 1abcdb3f247393a04703071452b560a77ab23c04 ]

hns3 PF driver enables one TC, allocates to 100% weight for this
TC and 0% for other disabled TC by default. But driver modifies
the weight to 1% for disabled TC and then set to hardware to make
all TC work in DWRR mode. As a result, the total percent of all TC
is more than 100%. Actually, this operation is also redundant,
because these disabled TC will never be used. So this patch sets
the weight of all TC based on user's configuration.

Fixes: 62e3ccc ("net/hns3: support flow control")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
  • Loading branch information
LiHuiSong1 authored and kevintraynor committed Jul 18, 2023
1 parent 931f667 commit befee9f
Showing 1 changed file with 1 addition and 8 deletions.
9 changes: 1 addition & 8 deletions drivers/net/hns3/hns3_dcb.c
Original file line number Diff line number Diff line change
Expand Up @@ -237,23 +237,16 @@ hns3_dcb_qs_weight_cfg(struct hns3_hw *hw, uint16_t qs_id, uint8_t dwrr)
static int
hns3_dcb_ets_tc_dwrr_cfg(struct hns3_hw *hw)
{
#define DEFAULT_TC_WEIGHT 1
#define DEFAULT_TC_OFFSET 14
struct hns3_ets_tc_weight_cmd *ets_weight;
struct hns3_pg_info *pg_info;
struct hns3_cmd_desc desc;
uint8_t i;

hns3_cmd_setup_basic_desc(&desc, HNS3_OPC_ETS_TC_WEIGHT, false);
ets_weight = (struct hns3_ets_tc_weight_cmd *)desc.data;

for (i = 0; i < HNS3_MAX_TC_NUM; i++) {
struct hns3_pg_info *pg_info;

ets_weight->tc_weight[i] = DEFAULT_TC_WEIGHT;

if (!(hw->hw_tc_map & BIT(i)))
continue;

pg_info = &hw->dcb_info.pg_info[hw->dcb_info.tc_info[i].pgid];
ets_weight->tc_weight[i] = pg_info->tc_dwrr[i];
}
Expand Down

0 comments on commit befee9f

Please sign in to comment.