[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