mbox

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

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

Message

Suanming Mou April 16, 2020, 8:34 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. Remove the duplicated RSS member in rte flow.
5. The bit members are reorganized to align with bytes.

Some extra optimizations:
1. Allocate meter resource from indexed memory pool.
2. Allocate 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:
https://patches.dpdk.org/cover/68591/

v2:
 - Add unified routine for fate actions release.
 - Rmove RSS totally from rte flow.
 - Allocate rte flow totally from indexed memory pool.

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 flow meter handle type
  net/mlx5: allocate meter from indexed pool
  net/mlx5: convert mark copy resource to indexed
  net/mlx5: optimize mlx5 flow RSS struct
  net/mlx5: allocate rte flow from indexed pool
  net/mlx5: reorganize rte flow structure

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

 drivers/net/mlx5/mlx5.c            |  38 +++-
 drivers/net/mlx5/mlx5.h            |  19 +-
 drivers/net/mlx5/mlx5_flow.c       | 406 +++++++++++++++++++++++--------------
 drivers/net/mlx5/mlx5_flow.h       |  89 +++++---
 drivers/net/mlx5/mlx5_flow_dv.c    | 214 +++++++++++--------
 drivers/net/mlx5/mlx5_flow_meter.c |  11 +-
 drivers/net/mlx5/mlx5_flow_verbs.c |  98 +++++----
 7 files changed, 554 insertions(+), 321 deletions(-)