mbox

[v2,00/10] net/mlx5: optimize flow resource allocation

Message ID 1587004928-328077-1-git-send-email-suanmingm@mellanox.com (mailing list archive)
Headers

Message

Suanming Mou April 16, 2020, 2:41 a.m. UTC
Currently, flow may allocate several action resources during creation.
Both allocate the individual resources and save the object handles have
big memory overhead for the flow.

Indexed memory pool is introduced to optimize the memory overhead. The
resources can be allocated from the resource's own individual memory pool
and only the 32-bits index is saved to the flow.

In this case, it saves MALLOC_ELEM_OVERHEAD and 4 bytes for every flow
resources.

This patch series depends on the path which has been acked as below:
https://patches.dpdk.org/patch/68143/

v2: 
- rebase to the lastet version.
- add the missing 10th patch.

Suanming Mou (10):
  net/mlx5: add indexed memory pool
  net/mlx5: add trunk dynamic grow for indexed pool
  net/mlx5: add trunk release for indexed pool
  net/mlx5: convert encap/decap resource to indexed
  net/mlx5: convert push VLAN resource to indexed
  net/mlx5: convert tag resource to indexed
  net/mlx5: convert port id action to indexed
  net/mlx5: convert jump resource to indexed
  net/mlx5: convert hrxq to indexed
  net/mlx5: convert flow dev handle to indexed

 drivers/net/mlx5/mlx5.c            | 148 ++++++++++++++-
 drivers/net/mlx5/mlx5.h            |  26 ++-
 drivers/net/mlx5/mlx5_flow.c       |  23 ++-
 drivers/net/mlx5/mlx5_flow.h       |  47 +++--
 drivers/net/mlx5/mlx5_flow_dv.c    | 271 +++++++++++++++++++---------
 drivers/net/mlx5/mlx5_flow_verbs.c |  53 ++++--
 drivers/net/mlx5/mlx5_rxq.c        |  47 +++--
 drivers/net/mlx5/mlx5_rxtx.h       |  22 +--
 drivers/net/mlx5/mlx5_utils.c      | 361 +++++++++++++++++++++++++++++++++++++
 drivers/net/mlx5/mlx5_utils.h      | 247 +++++++++++++++++++++++++
 10 files changed, 1071 insertions(+), 174 deletions(-)