mirror of
https://github.com/torvalds/linux.git
synced 2026-06-01 19:13:47 +02:00
net/mlx5: Change POOL_NEXT_SIZE define value and make it global
Change POOL_NEXT_SIZE define value from 0 to BIT(30), since this define is used to request the available maximum sized flow table, and zero doesn't make sense for it, whereas some places in the driver use zero explicitly expecting the smallest table size possible but instead due to this define they end up allocating the biggest table size unawarely. In addition move the definition to "include/linux/mlx5/fs.h" to expose the define to IB driver as well, while appropriately renaming it. Signed-off-by: Patrisious Haddad <phaddad@nvidia.com> Reviewed-by: Maor Gottlieb <maorg@nvidia.com> Reviewed-by: Mark Bloch <mbloch@nvidia.com> Signed-off-by: Tariq Toukan <tariqt@nvidia.com> Link: https://patch.msgid.link/20250219085808.349923-3-tariqt@nvidia.com Signed-off-by: Leon Romanovsky <leon@kernel.org>
This commit is contained in:
parent
531ca2b9a2
commit
80df31f384
|
|
@ -96,7 +96,7 @@ static int esw_create_legacy_fdb_table(struct mlx5_eswitch *esw)
|
|||
if (!flow_group_in)
|
||||
return -ENOMEM;
|
||||
|
||||
ft_attr.max_fte = POOL_NEXT_SIZE;
|
||||
ft_attr.max_fte = MLX5_FS_MAX_POOL_SIZE;
|
||||
ft_attr.prio = LEGACY_FDB_PRIO;
|
||||
fdb = mlx5_create_flow_table(root_ns, &ft_attr);
|
||||
if (IS_ERR(fdb)) {
|
||||
|
|
|
|||
|
|
@ -50,10 +50,12 @@ mlx5_ft_pool_get_avail_sz(struct mlx5_core_dev *dev, enum fs_flow_table_type tab
|
|||
int i, found_i = -1;
|
||||
|
||||
for (i = ARRAY_SIZE(FT_POOLS) - 1; i >= 0; i--) {
|
||||
if (dev->priv.ft_pool->ft_left[i] && FT_POOLS[i] >= desired_size &&
|
||||
if (dev->priv.ft_pool->ft_left[i] &&
|
||||
(FT_POOLS[i] >= desired_size ||
|
||||
desired_size == MLX5_FS_MAX_POOL_SIZE) &&
|
||||
FT_POOLS[i] <= max_ft_size) {
|
||||
found_i = i;
|
||||
if (desired_size != POOL_NEXT_SIZE)
|
||||
if (desired_size != MLX5_FS_MAX_POOL_SIZE)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,8 +7,6 @@
|
|||
#include <linux/mlx5/driver.h>
|
||||
#include "fs_core.h"
|
||||
|
||||
#define POOL_NEXT_SIZE 0
|
||||
|
||||
int mlx5_ft_pool_init(struct mlx5_core_dev *dev);
|
||||
void mlx5_ft_pool_destroy(struct mlx5_core_dev *dev);
|
||||
|
||||
|
|
|
|||
|
|
@ -161,7 +161,8 @@ mlx5_chains_create_table(struct mlx5_fs_chains *chains,
|
|||
ft_attr.flags |= (MLX5_FLOW_TABLE_TUNNEL_EN_REFORMAT |
|
||||
MLX5_FLOW_TABLE_TUNNEL_EN_DECAP);
|
||||
|
||||
sz = (chain == mlx5_chains_get_nf_ft_chain(chains)) ? FT_TBL_SZ : POOL_NEXT_SIZE;
|
||||
sz = (chain == mlx5_chains_get_nf_ft_chain(chains)) ?
|
||||
FT_TBL_SZ : MLX5_FS_MAX_POOL_SIZE;
|
||||
ft_attr.max_fte = sz;
|
||||
|
||||
/* We use chains_default_ft(chains) as the table's next_ft till
|
||||
|
|
|
|||
|
|
@ -40,6 +40,8 @@
|
|||
|
||||
#define MLX5_SET_CFG(p, f, v) MLX5_SET(create_flow_group_in, p, f, v)
|
||||
|
||||
#define MLX5_FS_MAX_POOL_SIZE BIT(30)
|
||||
|
||||
enum mlx5_flow_destination_type {
|
||||
MLX5_FLOW_DESTINATION_TYPE_NONE,
|
||||
MLX5_FLOW_DESTINATION_TYPE_VPORT,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user