net/mlx5: add reclaim memory mode
authorSuanming Mou <suanmingm@mellanox.com>
Mon, 1 Jun 2020 06:09:43 +0000 (14:09 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Wed, 3 Jun 2020 15:19:26 +0000 (17:19 +0200)
commita1da6f624c9b42035c231a8f44269f9530f55c86
treebcabb6d2fbacfea9c7d135a3c6577ccdc1b82129
parentbebee850162d92015a67894d2937c944c677421e
net/mlx5: add reclaim memory mode

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.

Signed-off-by: Suanming Mou <suanmingm@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
doc/guides/nics/mlx5.rst
doc/guides/rel_notes/release_20_08.rst
drivers/net/mlx5/mlx5.c
drivers/net/mlx5/mlx5.h