On 7/16/2015 11:07 AM, Christoph Hellwig wrote:
On Thu, Jul 16, 2015 at 09:52:44AM +0300, Sagi Grimberg wrote:
I suggest to start with what I proposed. And in a later stage (if we
still think its needed) we can have a higher level API that hides the
post, something like:
rdma_reg_sg(struct ib_qp *qp,
struct ib_mr *mr,
struct scatterlist *sg,
int sg_nents,
u64 offset,
u64 length,
int access_flags)
I still wonder what ?length? means in the context of a scatterlist.
Would byte_count be a more explanatory name?
What do you even need it for? The total length is implicitly stored in
the S/G list as the list of all elements.
What's the offset for? To allow skipping parts of a S/G list previously
mapped?
These were added when I thought of the pages helper. The memory region
HW tables consist of physical addresses, a first byte offset, and a
byte length to indicate when the region ends in the last page.
However, if we have only sg lists, I agree that the length is derived
from the sg_list itself and the offset will be sg[0]->offset.
I can drop it, unless anyone can think of a use-case where a ULP would
want to register a region with a different offset from sg[0]->offset
and/or ends before the sum(sg->length).
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html