On Tue, Nov 28, 2023 at 02:29:46PM +0200, Leon Romanovsky wrote: > From: Shun Hao <shunh@xxxxxxxxxx> > > Support allocate/deallocate the new SW encap ICM type memory. > The new ICM type is used for encap context allocation managed by SW, > instead FW. It can increase encap context maximum number and allocation > speed > > Signed-off-by: Shun Hao <shunh@xxxxxxxxxx> > Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxx> ... > @@ -164,6 +188,13 @@ int mlx5_dm_sw_icm_alloc(struct mlx5_core_dev *dev, enum mlx5_sw_icm_type type, > log_header_modify_pattern_sw_icm_size); > block_map = dm->header_modify_pattern_sw_icm_alloc_blocks; > break; > + case MLX5_SW_ICM_TYPE_SW_ENCAP: > + icm_start_addr = MLX5_CAP64_DEV_MEM(dev, > + indirect_encap_sw_icm_start_address); > + log_icm_size = MLX5_CAP_DEV_MEM(dev, > + log_indirect_encap_sw_icm_size); > + block_map = dm->header_encap_sw_icm_alloc_blocks; > + break; > default: > return -EINVAL; > } > @@ -242,6 +273,11 @@ int mlx5_dm_sw_icm_dealloc(struct mlx5_core_dev *dev, enum mlx5_sw_icm_type type > header_modify_pattern_sw_icm_start_address); > block_map = dm->header_modify_pattern_sw_icm_alloc_blocks; > break; > + case MLX5_SW_ICM_TYPE_SW_ENCAP: > + icm_start_addr = MLX5_CAP64_DEV_MEM(dev, > + indirect_encap_sw_icm_start_address); > + block_map = dm->header_encap_sw_icm_alloc_blocks; > + break; > default: > return -EINVAL; > } Hi Leon and Shun, a minor nit from my side: this patch uses MLX5_SW_ICM_TYPE_SW_ENCAP, but that enum value isn't present until the following patch.