[openib-general] [kernel verbs] u64 vs dma_addr_t
James Lentini
jlentini at netapp.com
Fri Dec 30 13:25:44 PST 2005
On Fri, 30 Dec 2005, Rimmer, Todd wrote:
> James wrote:
> > Why does the kernel verbs API use u64 as the type for I/O virtual
> > addresses instead of dma_addr_t (e.g. mthca_mr_alloc_phys()'s iova
> > param)?
>
> dma_addr_t is the appropriate datatype for an address on the local
> CPU/system.
>
> However, in Infiniband IO virtual addresses can also be exchanged
> across the wire for use by RDMA. Hence the address must be 64 bits
> [the size defined by Infiniband RDMA addressing protocols on the
> wire] even if the local system is a 32 bit CPU. This is necessary
> to support the case where the remote system has a 64 bit address
> space.
Thanks Todd. That makes sense now.
More information about the general
mailing list