mbox

[0/8] net/mlx5 counter optimize

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

Message

Suanming Mou April 7, 2020, 3:59 a.m. UTC
In the plan of save the memory consumption for rte_flow, the counter
memory consumption will be optimized from two perspective.

Change the counter object saving as index instead of pointer in rte_flow.
In this case, since currently the counters are allocated from the pool,
counter can use the index as it is in the pool to address the object. The
counter index ID is made up of the pool index and counter offset in the
pool.

Split the counter struct members are used only in batch and none batch.
Currently, there are two kinds of counters, one as batch and others as
none batch. The most widely used batch counters only use limited members
in the counter struct. Split the members only used by none batch counters
to the extend counter struct, and allocate the memory only for the none
batch counter pools saves memory for batch counters.


Suanming Mou (8):
  net/mlx5: fix incorrect counter container usage
  net/mlx5: optimize counter release query generation
  net/mlx5: change verbs counter allocator to indexed
  common/mlx5: add batch counter id offset
  net/mlx5: change Direct Verbs counter to indexed
  net/mlx5: optimize flow counter handle type
  net/mlx5: split the counter struct
  net/mlx5: reorganize fallback counter management

 drivers/common/mlx5/mlx5_prm.h     |   9 +
 drivers/net/mlx5/mlx5.c            |   6 +-
 drivers/net/mlx5/mlx5.h            |  52 +++--
 drivers/net/mlx5/mlx5_flow.c       |  28 ++-
 drivers/net/mlx5/mlx5_flow.h       |  10 +-
 drivers/net/mlx5/mlx5_flow_dv.c    | 445 ++++++++++++++++++-------------------
 drivers/net/mlx5/mlx5_flow_verbs.c | 173 ++++++++++----
 7 files changed, 428 insertions(+), 295 deletions(-)