mbox

[0/2] net/mlx5: add reclaim memory mode devarg

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

Message

Suanming Mou June 1, 2020, 6:09 a.m. UTC
Currently, when flow destroyed, some memory resources may still be kept
as cached to help next time create flow more efficiently.

Some system may need the resources to be more flexible with flow create
and destroy.  After peak time, with millions of flows destroyed, the
system would prefer the resources to be reclaimed completely, no cache
is needed. Then the resources can be allocated and used by other
components. The system is not so sensitive about the flow insertion
rate, but more care about the resources.

Both DPDK mlx5 PMD driver and the low level component rdma-core have
provided the flow resources to be configured cached or not, but there is
no APIs or parameters exposed to user to configure the flow resources
cache mode. In this case, introduce a new PMD devarg to let user
configure the flow resources cache mode will be helpful.

This commit is to add a new "reclaim_mem_mode" to help user configure if
the destroyed flows' cache resources should be kept or not.

Their will be three mode can be chosen:
1. 0(none). It means the flow resources will be cached as usual. The
resources will be cached, helpful with flow insertion rate.
2. 1(light). It will only enable the DPDK PMD level resources reclaim.
3. 2(aggressive). Both DPDK PMD level and rdma-core low level will be
configured as reclaimed mode.

With these three mode, user can configure the resources cache mode with
different levels.

Suanming Mou (2):
  common/mlx5: add memory reclaim glue function
  net/mlx5: add reclaim memory mode devarg

 doc/guides/nics/mlx5.rst               | 20 ++++++++++++++++++++
 doc/guides/rel_notes/release_20_08.rst |  6 ++++++
 drivers/common/mlx5/Makefile           |  5 +++++
 drivers/common/mlx5/meson.build        |  2 ++
 drivers/common/mlx5/mlx5_glue.c        | 13 +++++++++++++
 drivers/common/mlx5/mlx5_glue.h        |  1 +
 drivers/net/mlx5/mlx5.c                | 24 +++++++++++++++++++++++-
 drivers/net/mlx5/mlx5.h                | 13 +++++++++++++
 8 files changed, 83 insertions(+), 1 deletion(-)