lkml.org 
[lkml]   [2022]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 615/846] net/mlx5: Update log_max_qp value to FW max capability
    Date
    From: Maher Sanalla <msanalla@nvidia.com>

    [ Upstream commit f79a609ea6bf54ad2d2c24e4de4524288b221666 ]

    log_max_qp in driver's default profile #2 was set to 18, but FW actually
    supports 17 at the most - a situation that led to the concerning print
    when the driver is loaded:
    "log_max_qp value in current profile is 18, changing to HCA capabaility
    limit (17)"

    The expected behavior from mlx5_profile #2 is to match the maximum FW
    capability in regards to log_max_qp. Thus, log_max_qp in profile #2 is
    initialized to a defined static value (0xff) - which basically means that
    when loading this profile, log_max_qp value will be what the currently
    installed FW supports at most.

    Signed-off-by: Maher Sanalla <msanalla@nvidia.com>
    Reviewed-by: Maor Gottlieb <maorg@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/ethernet/mellanox/mlx5/core/main.c | 8 ++++++--
    1 file changed, 6 insertions(+), 2 deletions(-)

    diff --git a/drivers/net/ethernet/mellanox/mlx5/core/main.c b/drivers/net/ethernet/mellanox/mlx5/core/main.c
    index 92b01858d7f3e..29b7297a836a5 100644
    --- a/drivers/net/ethernet/mellanox/mlx5/core/main.c
    +++ b/drivers/net/ethernet/mellanox/mlx5/core/main.c
    @@ -97,6 +97,8 @@ enum {
    MLX5_ATOMIC_REQ_MODE_HOST_ENDIANNESS = 0x1,
    };

    +#define LOG_MAX_SUPPORTED_QPS 0xff
    +
    static struct mlx5_profile profile[] = {
    [0] = {
    .mask = 0,
    @@ -108,7 +110,7 @@ static struct mlx5_profile profile[] = {
    [2] = {
    .mask = MLX5_PROF_MASK_QP_SIZE |
    MLX5_PROF_MASK_MR_CACHE,
    - .log_max_qp = 18,
    + .log_max_qp = LOG_MAX_SUPPORTED_QPS,
    .mr_cache[0] = {
    .size = 500,
    .limit = 250
    @@ -513,7 +515,9 @@ static int handle_hca_cap(struct mlx5_core_dev *dev, void *set_ctx)
    to_fw_pkey_sz(dev, 128));

    /* Check log_max_qp from HCA caps to set in current profile */
    - if (MLX5_CAP_GEN_MAX(dev, log_max_qp) < prof->log_max_qp) {
    + if (prof->log_max_qp == LOG_MAX_SUPPORTED_QPS) {
    + prof->log_max_qp = MLX5_CAP_GEN_MAX(dev, log_max_qp);
    + } else if (MLX5_CAP_GEN_MAX(dev, log_max_qp) < prof->log_max_qp) {
    mlx5_core_warn(dev, "log_max_qp value in current profile is %d, changing it to HCA capability limit (%d)\n",
    prof->log_max_qp,
    MLX5_CAP_GEN_MAX(dev, log_max_qp));
    --
    2.34.1


    \
     
     \ /
      Last update: 2022-01-25 01:11    [W:2.116 / U:0.172 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site