[ofa-general] [PATCH RFC v3 1/2] RDMA/Core: MEM_MGT_EXTENSIONS support
Steve Wise
swise at opengridcomputing.com
Thu May 22 07:22:42 PDT 2008
Or Gerlitz wrote:
> Steve Wise wrote:
>> So you allocate the rkey/stag up front, allocate page_lists up front,
>> then as needed you populate your page list and bind it to the
>> rkey/stag via IB_WR_FAST_REG_MR, and invalidate that mapping via
>> IB_WR_INVALIDATE_MR. You can do this any number of times, and with
>> proper fencing, you can pipeline these mappings. Eventually when
>> you're done doing IO (like for NFSRDMA when the mount is unmounted)
>> you free up the page list(s) and mr/rkey/stag.
> Yes, that was my thought as well.
>
> Just to make sure, by "proper fencing" your understanding is that for
> both IB and iWARP the ULP should not wait for the fmr work request to
> complete and post the send work-request carrying the rkey/stag with the
> IB_SEND_FENCE flag?
>
> Looking in the IB spec, its seems that the fence indicator only applies
> to previous rdma-read / atomic operations, eg in section 11.4.1.1 POST
> SEND REQUEST it says:
>> Fence indicator. If the fence indicator is set, then all prior RDMA
>> Read and Atomic Work Requests on the queue must be completed before
>> starting to process this Work Request.
>
The fast register and invalidate work requests require that they be
completed by the device _before_ processing any subsequent work
requests. So you can post subsequent SEND WRs that utilize the rkey
without problems.
In addition, invalidate allows a local fence which means the device will
no begin processing the invalitdae until all _prior_ work requests
complete (similar to a read fence but for all prior WRS).
Steve.
More information about the general
mailing list