diff options
author | Jianbo Liu <jianbol@mellanox.com> | 2019-12-27 06:37:07 +0000 |
---|---|---|
committer | Saeed Mahameed <saeedm@mellanox.com> | 2020-02-27 16:40:19 -0800 |
commit | 87dac697a05a730d878f703a3c3dd78ac6c5bff4 (patch) | |
tree | 8cfa88913907dc4f683bf237cf92a5a571a57f23 /drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c | |
parent | 8aa9f3be7369184d4bc23f804668c370515d7d0f (diff) | |
download | linux-87dac697a05a730d878f703a3c3dd78ac6c5bff4.tar.bz2 |
net/mlx5e: Add devlink fdb_large_groups parameter
Add a devlink parameter to control the number of large groups in a
autogrouped flow table. The default value is 15, and the range is between 1
and 1024.
The size of each large group can be calculated according to the following
formula: size = 4M / (fdb_large_groups + 1).
Examples:
- Set the number of large groups to 20.
$ devlink dev param set pci/0000:82:00.0 name fdb_large_groups \
cmode driverinit value 20
Then run devlink reload command to apply the new value.
$ devlink dev reload pci/0000:82:00.0
- Read the number of large groups in flow table.
$ devlink dev param show pci/0000:82:00.0 name fdb_large_groups
pci/0000:82:00.0:
name fdb_large_groups type driver-specific
values:
cmode driverinit value 20
Signed-off-by: Jianbo Liu <jianbol@mellanox.com>
Reviewed-by: Vlad Buslov <vladbu@mellanox.com>
Reviewed-by: Roi Dayan <roid@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c')
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c index 9a72c719d8f5..4b5b6618dff4 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c @@ -71,13 +71,15 @@ struct mlx5_vport_table { struct mlx5_vport_key key; }; +#define MLX5_ESW_VPORT_TBL_NUM_GROUPS 4 + static struct mlx5_flow_table * esw_vport_tbl_create(struct mlx5_eswitch *esw, struct mlx5_flow_namespace *ns) { struct mlx5_flow_table_attr ft_attr = {}; struct mlx5_flow_table *fdb; - ft_attr.autogroup.max_num_groups = ESW_OFFLOADS_NUM_GROUPS; + ft_attr.autogroup.max_num_groups = MLX5_ESW_VPORT_TBL_NUM_GROUPS; ft_attr.max_fte = MLX5_ESW_VPORT_TABLE_SIZE; ft_attr.prio = FDB_PER_VPORT; fdb = mlx5_create_auto_grouped_flow_table(ns, &ft_attr); |