lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 26 Feb 2020 11:53:04 +0200 From: Paul Blakey <paulb@...lanox.com> To: Saeed Mahameed <saeedm@...lanox.com>, Roi Dayan <roid@...lanox.com>, "saeedm@....mellanox.co.il" <saeedm@....mellanox.co.il>, "xiangxia.m.yue@...il.com" <xiangxia.m.yue@...il.com>, "gerlitz.or@...il.com" <gerlitz.or@...il.com> Cc: "netdev@...r.kernel.org" <netdev@...r.kernel.org> Subject: Re: [net-next] net/mlx5e: Remove the unnecessary parameter On 2/26/2020 12:50 AM, Saeed Mahameed wrote: > On Wed, 2020-02-26 at 00:03 +0800, xiangxia.m.yue@...il.com wrote: >> From: Tonghao Zhang <xiangxia.m.yue@...il.com> >> >> The parameter desired_size is always 0, and there is only one >> function calling the mlx5_esw_chains_get_avail_sz_from_pool. >> Deleting the parameter desired_size. > Paul, what is the reasoning behind desired size, i confirm that it is > not actually used right now, do we have a pending patch that needs it > ? > if this is not going to happen in the near future i vote to apply this > patch and bring it back when needed. Right, it will be used in a following patch that reduces the size given for nft flow tables. I planned on submitting it after connection tracking offload is complete, but it can be sent now. This is the patch: >From 66d3cb9706ed09f00150a42f555a51404602bba4 Mon Sep 17 00:00:00 2001 From: Paul Blakey <paulb@...lanox.com> Date: Wed, 8 Jan 2020 14:31:53 +0200 Subject: [PATCH] net/mlx5: Allocate smaller size tables for ft offload Instead of giving ft tables one of the largest tables available - 4M, give it a more reasonable size - 64k. Especially since it will always be created as a miss hook in the following patch. Signed-off-by: Paul Blakey <paulb@...lanox.com> Reviewed-by: Mark Bloch <markb@...lanox.com> --- drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_chains.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_chains.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_chains.c index 3990066..dabbc05 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_chains.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_chains.c @@ -39,6 +39,7 @@ 1 * 1024 * 1024, 64 * 1024, 128 }; +#define ESW_FT_TBL_SZ (64 * 1024) struct mlx5_esw_chains_priv { struct rhashtable chains_ht; @@ -205,7 +206,9 @@ static unsigned int mlx5_esw_chains_get_level_range(struct mlx5_eswitch *esw) ft_attr.flags |= (MLX5_FLOW_TABLE_TUNNEL_EN_REFORMAT | MLX5_FLOW_TABLE_TUNNEL_EN_DECAP); - sz = mlx5_esw_chains_get_avail_sz_from_pool(esw, POOL_NEXT_SIZE); + sz = (chain == mlx5_esw_chains_get_ft_chain(esw)) ? + mlx5_esw_chains_get_avail_sz_from_pool(esw, ESW_FT_TBL_SZ) : + mlx5_esw_chains_get_avail_sz_from_pool(esw, POOL_NEXT_SIZE); if (!sz) return ERR_PTR(-ENOSPC); ft_attr.max_fte = sz; -- 1.8.3.1 > > Thanks, > Saeed. > >> Signed-off-by: Tonghao Zhang <xiangxia.m.yue@...il.com> >> --- >> .../net/ethernet/mellanox/mlx5/core/eswitch_offloads_chains.c | 11 >> +++-------- >> 1 file changed, 3 insertions(+), 8 deletions(-) >> >> diff --git >> a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_chains.c >> b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_chains.c >> index c5a446e..ce5b7e1 100644 >> --- >> a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_chains.c >> +++ >> b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_chains.c >> @@ -134,19 +134,14 @@ static unsigned int >> mlx5_esw_chains_get_level_range(struct mlx5_eswitch *esw) >> return FDB_TC_LEVELS_PER_PRIO; >> } >> >> -#define POOL_NEXT_SIZE 0 >> static int >> -mlx5_esw_chains_get_avail_sz_from_pool(struct mlx5_eswitch *esw, >> - int desired_size) >> +mlx5_esw_chains_get_avail_sz_from_pool(struct mlx5_eswitch *esw) >> { >> int i, found_i = -1; >> >> for (i = ARRAY_SIZE(ESW_POOLS) - 1; i >= 0; i--) { >> - if (fdb_pool_left(esw)[i] && ESW_POOLS[i] > >> desired_size) { >> + if (fdb_pool_left(esw)[i]) >> found_i = i; >> - if (desired_size != POOL_NEXT_SIZE) >> - break; >> - } >> } >> >> if (found_i != -1) { >> @@ -198,7 +193,7 @@ static unsigned int >> mlx5_esw_chains_get_level_range(struct mlx5_eswitch *esw) >> ft_attr.flags |= (MLX5_FLOW_TABLE_TUNNEL_EN_REFORMAT | >> MLX5_FLOW_TABLE_TUNNEL_EN_DECAP); >> >> - sz = mlx5_esw_chains_get_avail_sz_from_pool(esw, >> POOL_NEXT_SIZE); >> + sz = mlx5_esw_chains_get_avail_sz_from_pool(esw); >> if (!sz) >> return ERR_PTR(-ENOSPC); >> ft_attr.max_fte = sz;
Powered by blists - more mailing lists