[ofa-general] Question about exchanging DAT_RMR_TRIPLET

Arlin Davis ardavis at ichips.intel.com
Fri Feb 1 14:18:03 PST 2008


Chuck Hartley wrote:
> Hello,
> 
> We are doing RDMA transfers using UDAPL and just added a machine with a 
> different endianness than the rest of the current machines.  We register 
> a memory region and get a DAT_RMR_TRIPLET that we then send to the 
> remote machine. On the receiving end, are you supposed to use the 
> triplet as is, or do you have to byte swap it to the native order or 
> some specific endianness? 

Unless interfaces are specifically defined as endian type then you need 
to assume host order. Convert your TRIPLET information to network order
and exchange/swap accordingly. Look at v2 dtest.c or dtestx.c source
as an example.

I couldn't find anything in the UDAPL document
> addressing this.
> 
> On a related issue, we register a single large memory region that we are 
> doing transfers from.  However, we are doing small transfers at varying 
> offsets within that region.  We are currently doing this by modifying 
> the address field of the DAT_RMR_TRIPLET we received. Is this an ok 
> thing to do, or is there some other way to do RDMA transfers of varying 
> size/offset from within a single registered memory region?

This will work fine, just make sure you are never accessing the same
memory window via simultaneous operations.

-arlin



More information about the general mailing list