Re: [PATCH net-next 07/12] net/mlx5: HWS, Fix pool size optimization

Michal Kubiak
2025-04-10T12:21:40Z

On Tue, Apr 08, 2025 at 05:00:51PM +0300, Tariq Toukan wrote:
> From: Vlad Dogaru <vdogaru@nvidia.com>
>
> The optimization to create a size-one STE range for the unused direction
> was broken. The hardware prevents us from creating RTCs over unallocated
> STE space, so the only reason this has worked so far is because the
> optimization was never used.
>

Is there any chance that the optimization can be used (enabled) by
someone on previous kernels? If so, maybe the patch is a better candidate
for the "net" tree?

Thanks,
Michal

> Signed-off-by: Vlad Dogaru <vdogaru@nvidia.com>
> Reviewed-by: Yevgeny Kliteynik <kliteyn@nvidia.com>
> Reviewed-by: Mark Bloch <mbloch@nvidia.com>
> Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
> ---
> drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c
> index 26d85fe3c417..7e37d6e9eb83 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c
> @@ -80,7 +80,7 @@ static int hws_pool_resource_alloc(struct mlx5hws_pool *pool)
> u32 fw_ft_type, opt_log_range;
>
> fw_ft_type = mlx5hws_table_get_res_fw_ft_type(pool->tbl_type, false);
> - opt_log_range = pool->opt_type == MLX5HWS_POOL_OPTIMIZE_ORIG ?
> + opt_log_range = pool->opt_type == MLX5HWS_POOL_OPTIMIZE_MIRROR ?
> 0 : pool->alloc_log_sz;
> resource = hws_pool_create_one_resource(pool, opt_log_range, fw_ft_type);
> if (!resource) {
> @@ -94,7 +94,7 @@ static int hws_pool_resource_alloc(struct mlx5hws_pool *pool)
> struct mlx5hws_pool_resource *mirror_resource;
>
> fw_ft_type = mlx5hws_table_get_res_fw_ft_type(pool->tbl_type, true);
> - opt_log_range = pool->opt_type == MLX5HWS_POOL_OPTIMIZE_MIRROR ?
> + opt_log_range = pool->opt_type == MLX5HWS_POOL_OPTIMIZE_ORIG ?
> 0 : pool->alloc_log_sz;
> mirror_resource = hws_pool_create_one_resource(pool, opt_log_range, fw_ft_type);
> if (!mirror_resource) {
> --
> 2.31.1
>
>