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
_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to