net/mlx5: DR, Manage STE send info objects in pool
authorYevgeny Kliteynik <kliteyn@nvidia.com>
Tue, 29 Mar 2022 12:21:02 +0000 (15:21 +0300)
committerSaeed Mahameed <saeedm@nvidia.com>
Thu, 27 Oct 2022 14:50:39 +0000 (15:50 +0100)
commit17b56073a0668a153f0e1051dc1bf60960f74810
treecae440b60f982eed115bc6ec036147955337bf48
parent1bea2dc7f4ff30bd785e1949d237cd2ce1e87c4f
net/mlx5: DR, Manage STE send info objects in pool

Instead of allocating/freeing send info objects dynamically, manage them
in pool. The number of send info objects doesn't depend on rules, so after
pre-populating the pool with an initial batch of send info objects, the
pool is not expected to grow.
This way we save alloc/free during writing STEs to ICM, which can
sometimes take up to 40msec.

Signed-off-by: Yevgeny Kliteynik <kliteyn@nvidia.com>
Reviewed-by: Alex Vesker <valex@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/steering/dr_domain.c
drivers/net/ethernet/mellanox/mlx5/core/steering/dr_rule.c
drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c
drivers/net/ethernet/mellanox/mlx5/core/steering/dr_types.h