Trond Myklebust wrote:
> On Mon, 2009-04-27 at 14:32 -0500, Steve Wise wrote:
>
>> Clarification: The iova_start isn't used to store dma handles. The
>> iova_start is the "address" base value that is advertised to a peer to
>> describe the base address of a memory region. The contents of that can
>> be more than just a dma handle...its up to the application. For
>> instance, you could advertise a iova_start of zero or a kernel VA as the
>> rdma server does. Also, the type is u64 because that is the size used
>> on the wire as part of the rdma (IB and iWARP) protocols.
>>
>
> OK, but my point is we shouldn't be having this discussion at all. I
> shouldn't be required to know that the wire protocol uses a 64-bit
> unsigned little-endian/big endian integer in order to use the rdma api.
>
> All I should need to know is that I can advertise either dma handles or
> kernel VAs, and know that I can choose between two functions, say,
> ib_send_wr_fastreg_dma_init() and ib_send_wr_fastreg_kva_init() to
> initialise the ib_send_wr structure correctly.
>
I hear ya.