On Jul 20, 2015, at 6:26 PM, Jason Gunthorpe <[email protected]> 
wrote:

> On Mon, Jul 20, 2015 at 03:03:11PM -0400, Chuck Lever wrote:
>> +    iov->length = size;
>> +    iov->lkey = ia->ri_have_dma_lkey ?
>> +                            ia->ri_dma_lkey : ia->ri_bind_mem->lkey;
>> +    rb->rg_size = size;
>> +    rb->rg_owner = NULL;
>>      return rb;
> 
> There is something odd looking about this..
> 
> ri_bind_mem is only setup in the RPCRDMA_ALLPHYSICAL and
> RPCRDMA_MTHCAFMR cases.
> 
> RPCRDMA_FRMR doesn't set it up.
> 
> So this code in rpcrdma_alloc_regbuf is never called for the FRMR
> case?
> 
> If yes, then, how is FRMR working? There is absolutely no reason to
> use FRMR to register local send buffers, just use the global all
> memory lkey...
> 
> If no, then that is an oops?

I’ve tested this code, no oops.

FRWR always uses the DMA lkey. xprtrdma does not use FRWR if
IB_DEVICE_LOCAL_DMA_LKEY is not asserted.

FMR and PHYSICAL use the DMA lkey if it exists, otherwise they
use an lkey from ib_get_dma_mr.

Look in 06/15, this is cleaned up.


--
Chuck Lever



--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to