RDMA/mlx5: Add capability for max sge to get optimized performance
authorYamin Friedman <yaminf@mellanox.com>
Mon, 7 Oct 2019 13:59:33 +0000 (16:59 +0300)
committerJason Gunthorpe <jgg@mellanox.com>
Tue, 22 Oct 2019 17:27:00 +0000 (14:27 -0300)
Allows the IB device to provide a value of maximum scatter gather entries
per RDMA READ.

In certain cases it may be preferable for a device to perform UMR memory
registration rather than have many scatter entries in a single RDMA READ.
This provides a significant performance increase in devices capable of
using different memory registration schemes based on the number of scatter
gather entries. This general capability allows each device vendor to fine
tune when it is better to use memory registration.

Link: https://lore.kernel.org/r/20191007135933.12483-4-leon@kernel.org
Signed-off-by: Yamin Friedman <yaminf@mellanox.com>
Reviewed-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/hw/mlx5/main.c

index 831539419c3016e11ae1da143d344a7ea5b1c1bf..bb3a4e82ee5afebe2365f72206fe0ae30f0089f5 100644 (file)
@@ -1011,6 +1011,8 @@ static int mlx5_ib_query_device(struct ib_device *ibdev,
                1 << MLX5_CAP_GEN(mdev, log_max_klm_list_size);
        props->max_pi_fast_reg_page_list_len =
                props->max_fast_reg_page_list_len / 2;
+       props->max_sgl_rd =
+               MLX5_CAP_GEN(mdev, max_sgl_for_optimized_performance);
        get_atomic_caps_qp(dev, props);
        props->masked_atomic_cap   = IB_ATOMIC_NONE;
        props->max_mcast_grp       = 1 << MLX5_CAP_GEN(mdev, log_max_mcg);