Re: [PATCH rdma-next] IB/mlx5: Report correctly tag matching rendezvous capability

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jul 05, 2019 at 07:21:57PM +0300, Leon Romanovsky wrote:
> From: Danit Goldberg <danitg@xxxxxxxxxxxx>
> 
> Tag matching with rendezvous offload for RC transport is controlled
> by FW and before this change, it was advertised to user as supported
> without any relation to FW.
> 
> Separate tag matching for rendezvous and eager protocols, so users
> will see real capabilities.
> 
> Cc: <stable@xxxxxxxxxxxxxxx> # 4.13
> Fixes: eb761894351d ("IB/mlx5: Fill XRQ capabilities")
> Signed-off-by: Danit Goldberg <danitg@xxxxxxxxxxxx>
> Reviewed-by: Yishai Hadas <yishaih@xxxxxxxxxxxx>
> Reviewed-by: Artemy Kovalyov <artemyko@xxxxxxxxxxxx>
> Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxxxx>
>  drivers/infiniband/hw/mlx5/main.c | 8 ++++++--
>  include/rdma/ib_verbs.h           | 4 ++--
>  2 files changed, 8 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/infiniband/hw/mlx5/main.c b/drivers/infiniband/hw/mlx5/main.c
> index 07a05b0b9e42..c2a5780cb394 100644
> +++ b/drivers/infiniband/hw/mlx5/main.c
> @@ -1046,15 +1046,19 @@ static int mlx5_ib_query_device(struct ib_device *ibdev,
>  	}
>  
>  	if (MLX5_CAP_GEN(mdev, tag_matching)) {
> -		props->tm_caps.max_rndv_hdr_size = MLX5_TM_MAX_RNDV_MSG_SIZE;
>  		props->tm_caps.max_num_tags =
>  			(1 << MLX5_CAP_GEN(mdev, log_tag_matching_list_sz)) - 1;
> -		props->tm_caps.flags = IB_TM_CAP_RC;
>  		props->tm_caps.max_ops =
>  			1 << MLX5_CAP_GEN(mdev, log_max_qp_sz);
>  		props->tm_caps.max_sge = MLX5_TM_MAX_SGE;
>  	}
>  
> +	if (MLX5_CAP_GEN(mdev, tag_matching) &&
> +	    MLX5_CAP_GEN(mdev, rndv_offload_rc)) {
> +		props->tm_caps.flags = IB_TM_CAP_RNDV_RC;
> +		props->tm_caps.max_rndv_hdr_size = MLX5_TM_MAX_RNDV_MSG_SIZE;
> +	}
> +
>  	if (MLX5_CAP_GEN(dev->mdev, cq_moderation)) {
>  		props->cq_caps.max_cq_moderation_count =
>  						MLX5_MAX_CQ_COUNT;
> diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
> index 30eb68f36109..c5f8a9f17063 100644
> +++ b/include/rdma/ib_verbs.h
> @@ -308,8 +308,8 @@ struct ib_rss_caps {
>  };
>  
>  enum ib_tm_cap_flags {
> -	/*  Support tag matching on RC transport */
> -	IB_TM_CAP_RC		    = 1 << 0,
> +	/*  Support tag matching with rendezvous offload for RC transport */
> +	IB_TM_CAP_RNDV_RC = 1 << 0,
>  };

This is in the wrong header, right?

Jason




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux