On 07/22/13 15:11, Sagi Grimberg wrote:
So just to clarify the flow:
. at connection establishment allocate pool of fastreg descriptors
. upon each IOP take a fastreg descriptor from the pool
. if it is not invalidated - invalidate it.
. register using FRWR.
. when cleanup_task is called - just return the fastreg descriptor to
the pool.
. at connection teardown free all resources.
Still to come:
. upon each IOP response, check if the target used remote invalidate -
if so mark relevant fastreg as valid.
Hello Sagi and Or,
Thanks for the clarifications. I have one more question though. My
interpretation of section "10.6 Memory Management" in the IB
specification is that memory registration maps a memory region that
either has contiguous virtual addresses or contiguous physical
addresses. However, there is no such requirement for an sg-list. As an
example, for direct I/O to a block device with a sector size of 512
bytes it is only required that I/O occurs in multiples of 512 bytes and
from memory aligned on 512-byte boundaries. So the use of direct I/O can
result in an sg-list where the second and subsequent sg-list elements
have a non-zero offset. Do you agree with this ? Are such sg-lists
mapped correctly by the FRWR code ?
Bart.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html