Subject: Re: [PATCH rdma-next v1 2/3] RDMA/rw: Support threshold for registration vs scattering to local pages

From: Leon Romanovsky <[email-masked]>
Date: Mon, 7 Oct 2019 15:36:56 +0300

On Mon, Oct 07, 2019 at 05:12:44AM -0700, Christoph Hellwig wrote:
> Sorry for nitpicking again, but..
>
> On Mon, Oct 07, 2019 at 02:58:18PM +0300, Leon Romanovsky wrote:
> > @@ -37,15 +39,15 @@ static inline bool rdma_rw_can_use_mr(struct ib_device *dev, u8 port_num)
> >   * Check if the device will use memory registration for this RW operation.
> >   * We currently always use memory registrations for iWarp RDMA READs, and
> >   * have a debug option to force usage of MRs.
> > - *
> > - * XXX: In the future we can hopefully fine tune this based on HCA driver
> > - * input.
>
> The above comment needs an updated a la:
>
>  * Check if the device will use memory registration for this RW operation.
>  * For RDMA READs we must use MRs on iWarp and can optionaly use them as an
>  * optimaztion otherwise.  Additionally we have a debug option to force usage
>  * of MRs to help testing this code path.
>
>
> >  	if (rdma_protocol_iwarp(dev, port_num) && dir == DMA_FROM_DEVICE)
> >  		return true;
> > +	if (dev->attrs.max_sgl_rd && dir == DMA_FROM_DEVICE &&
> > +	    dma_nents > dev->attrs.max_sgl_rd)
> > +		return true;
>
> This can be simplified to:
>
> 	if (dir == DMA_FROM_DEVICE &&
> 	    (rdma_protocol_iwarp(dev, port_num) ||
> 	     (dev->attrs.max_sgl_rd && dma_nents > dev->attrs.max_sgl_rd)))
> 		return true;

I don't think that it simplifies and wanted to make separate checks to
be separated. For example, rdma_protocol_iwarp() has nothing to do with
attrs.max_sgl_rd.

I'll fix comment.

Thanks