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 05:15:59PM +0000, Jason Gunthorpe wrote:
> 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?

It predates our all-to-uapi headers approach and moving to UAPI this struct
is definitely too much for a fix which should go to stable@.

Thanks

>
> 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