[00/10] net/mlx5: optimize flow structure

Message ID 1586932797-99533-1-git-send-email-suanmingm@mellanox.com (mailing list archive)


Suanming Mou April 15, 2020, 6:39 a.m. UTC
  This patch set is third part of the flow memory consumption optimization.
It mainly optimizes the rte flow and mlx5 flow handle structure.

For mlx5 flow handle structure:
1. As one flow has only one fate action, the fate actions are reorganized
as union.
2. The action flags are optimized to be the limited bits the flow needs.
3. The bits members are reorganized to align with bytes.

For rte flow structure:
1. Meter handle is converted to uint32_t type as unique meter id.
2. Fdir handle is converted to one bit to save the pointer to another list.
3. Metadata handle is converted to uint32_t type as indexed.
4. The bit members are reorganized to align with bytes.

Some extra optimizations:
1. Allocate meter resource from indexed memory pool.
2. Allocate none RSS rte flow from indexed memory pool.
3. Split RSS type, level, key to common memory as they are not required
for the flow destroy.

This patch set should be applied after the patch series as below:

Suanming Mou (9):
  net/mlx5: reorganize fate actions as union
  net/mlx5: optimize action flags in flow handle
  net/mlx5: reorganize the mlx5 flow handle struct
  net/mlx5: optimize mlx5 flow RSS struct
  net/mlx5: allocate rte flow from indexed pool
  net/mlx5: optimize flow meter handle type
  net/mlx5: allocate meter from indexed pool
  net/mlx5: allocate metadata object from indexed pool
  net/mlx5: reorganize rte flow structure

Wentao Cui (1):
  net/mlx5: optimize flow director filter memory

 drivers/net/mlx5/mlx5.c            |  35 +++++++-
 drivers/net/mlx5/mlx5.h            |   5 ++
 drivers/net/mlx5/mlx5_flow.c       | 168 +++++++++++++++++++++++++++----------
 drivers/net/mlx5/mlx5_flow.h       |  83 +++++++++++-------
 drivers/net/mlx5/mlx5_flow_dv.c    | 135 ++++++++++++++++++-----------
 drivers/net/mlx5/mlx5_flow_meter.c |  11 +--
 drivers/net/mlx5/mlx5_flow_verbs.c |  91 +++++++++++---------
 7 files changed, 363 insertions(+), 165 deletions(-)