net/mlx5: add control of excessive memory pinning by kernel
authorYongseok Koh <yskoh@mellanox.com>
Mon, 1 Apr 2019 21:17:54 +0000 (14:17 -0700)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 5 Apr 2019 15:45:22 +0000 (17:45 +0200)
commitdceb5029425175c93d5d56677393cbc7a44f29e5
tree0c8af34b450cb463136623c18a2841272c6a9254
parent207fe7ac72ad4a136a68fb979b7b7525161e4235
net/mlx5: add control of excessive memory pinning by kernel

A new PMD parameter (mr_ext_memseg_en) is added to control extension of
memseg when creating a MR. It is enabled by default.

If enabled, mlx5_mr_create() tries to maximize the range of MR
registration so that the LKey lookup tables on datapath become smaller
and get the best performance. However, it may worsen memory utilization
because registered memory is pinned by kernel driver. Even if a page in
the extended chunk is freed, that doesn't become reusable until the
entire memory is freed and the MR is destroyed.

To make freed pages available immediately, this parameter has to be
turned off but it could drop performance.

Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
doc/guides/nics/mlx5.rst
drivers/net/mlx5/mlx5.c
drivers/net/mlx5/mlx5.h
drivers/net/mlx5/mlx5_mr.c