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