diff options
author | Yevgeny Kliteynik <kliteyn@nvidia.com> | 2022-06-29 13:19:36 +0300 |
---|---|---|
committer | Saeed Mahameed <saeedm@nvidia.com> | 2022-10-27 15:50:38 +0100 |
commit | 1bea2dc7f4ff30bd785e1949d237cd2ce1e87c4f (patch) | |
tree | 470dacb32af0ac702028baafbeefcbf3497387ea /drivers/net/ethernet/mellanox/mlx5/core/steering/dr_rule.c | |
parent | 183a6706a07ea95cdd57a7703acec5f39fe3edde (diff) |
net/mlx5: DR, In rehash write the line in the entry immediately
Don't wait for the whole table to be ready - write each row immediately.
This way we save allocations of the ste_send_info structure and improve
performance.
Signed-off-by: Erez Shitrit <erezsh@nvidia.com>
Signed-off-by: Yevgeny Kliteynik <kliteyn@nvidia.com>
Reviewed-by: Alex Vesker <valex@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx5/core/steering/dr_rule.c')
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/steering/dr_rule.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_rule.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_rule.c index 6cbc444ad791..22878dcd7c8b 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_rule.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_rule.c @@ -358,6 +358,15 @@ static int dr_rule_rehash_copy_htbl(struct mlx5dr_matcher *matcher, update_list); if (err) goto clean_copy; + + /* In order to decrease the number of allocated ste_send_info + * structs, send the current table row now. + */ + err = dr_rule_send_update_list(update_list, matcher->tbl->dmn, false); + if (err) { + mlx5dr_dbg(matcher->tbl->dmn, "Failed updating table to HW\n"); + goto clean_copy; + } } clean_copy: |