[PATCH] net/mlx5: fix the WQE size calculation for Tx queue
Bing Zhao
bingz at nvidia.com
Fri Jun 27 10:25:02 CEST 2025
The txq_calc_wqebb_cnt() should be consistent with the calculation in
the function mlx5_txq_devx_obj_new(). Or when the input descriptor
number is 512, the WQE size will be wrongly considered to be 30 when
no max_inline_data is zero in some cases. The total number of WQE will
be considered as 256 and that is incorrect.
Adjusting the WQE size will solve the wrong calculation when the
calculated WQE size is less than 64B.
Fixes: 38b4b397a57d ("net/mlx5: add Tx configuration and setup")
Cc: viacheslavo at nvidia.com
Cc: stable at dpdk.org
Signed-off-by: Bing Zhao <bingz at nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo at nvidia.com>
---
drivers/net/mlx5/mlx5_txq.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/mlx5/mlx5_txq.c b/drivers/net/mlx5/mlx5_txq.c
index 5fee5bc4e8..62b3fc4f25 100644
--- a/drivers/net/mlx5/mlx5_txq.c
+++ b/drivers/net/mlx5/mlx5_txq.c
@@ -709,6 +709,7 @@ txq_calc_wqebb_cnt(struct mlx5_txq_ctrl *txq_ctrl)
MLX5_WSEG_SIZE -
MLX5_ESEG_MIN_INLINE_SIZE +
txq_ctrl->max_inline_data;
+ wqe_size = RTE_MAX(wqe_size, MLX5_WQE_SIZE);
return rte_align32pow2(wqe_size * desc) / MLX5_WQE_SIZE;
}
--
2.34.1
More information about the dev
mailing list