net/mlx4: add control of excessive memory pinning by kernel
authorYongseok Koh <yskoh@mellanox.com>
Mon, 1 Apr 2019 21:17:56 +0000 (14:17 -0700)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 5 Apr 2019 15:45:22 +0000 (17:45 +0200)
commitf4efc0eb9703ad275a6f7a37c9592151af55aaaf
tree29746ced54ab7cad4984bc5ed4fe3eef2d066c14
parentc18cf501a7af30715ba9984b0d05ab4cd9298b05
net/mlx4: 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, mlx4_mr_create() tries to maximize the range of MR
registration so that the LKey lookup tables on datapath become smalle
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/mlx4.rst
drivers/net/mlx4/mlx4.c
drivers/net/mlx4/mlx4.h
drivers/net/mlx4/mlx4_mr.c