possible rkey byteswap (was Re: [ofw] what's up with theOFAWindows project?)

Tzachi Dar tzachid at mellanox.co.il
Thu Feb 7 01:21:54 PST 2008


I'm just trying to verify what Fab says:

Is interoperation between Linux big- and little-endian broken?
If so, who can push the fix to the Linux code?

Once that will be done we can start looking at the windows to Linux
interoperation.

Thanks
Tzachi

> -----Original Message-----
> From: ofw-bounces at lists.openfabrics.org 
> [mailto:ofw-bounces at lists.openfabrics.org] On Behalf Of Fab Tillier
> Sent: Thursday, February 07, 2008 1:20 AM
> To: frank zago
> Cc: ofw at lists.openfabrics.org
> Subject: RE: possible rkey byteswap (was Re: [ofw] what's up 
> with theOFAWindows project?)
> 
> Ok, let me rephrase - the RKey should be opaque, and should 
> always be in network order (i.e. never ever swapped in any 
> code except the lowest level HW driver if necessary).
> 
> In your example, your application would also be broken 
> between the big- and little-endian Linux machines, 
> independent of Windows.  For the big- and little-endian 
> machines to interoperate, they must agree on a wire format 
> for exchanging the RKey.  The application in this case would 
> swap the RKey into network order (and the swap would be a 
> noop on the big-endian machine) when it puts it on the wire, 
> and swap to host order (again a noop for the big-endian 
> machine) when it receives it form the wire.  The Windows 
> version of the application would never swap the RKey as it is 
> always treated as an opaque network order value.
> 
> -Fab
> 
> -----Original Message-----
> From: frank zago [mailto:fzago at systemfabricworks.com]
> Sent: Wednesday, February 06, 2008 2:22 PM
> To: Fab Tillier
> Cc: Robert Pearson; 'Tom Tucker'; ofw at lists.openfabrics.org
> Subject: Re: possible rkey byteswap (was Re: [ofw] what's up 
> with the OFAWindows project?)
> 
> Fab Tillier wrote:
> > The RKey is always an opaque value - it only has meaning to 
> the HCA hardware, and is used in combination with the PD of 
> the QP on which the RETH is received to do the address 
> translation.  It's a token, and should be treated as such.  
> It cannot be interpreted by anything other than the HW/driver 
> that generated it.  The value really should never be 
> manipulated outside of the HCA hardware domain (which 
> includes the HW and the HW-specific driver).
> >
> > -Fab
> The rkey cannot be opaque. You register a memory region on 
> windows, get a rkey, send it to a big endian linux and a 
> little endian linux host.
> Both try to use it, and one of them will fail.
> 
> I think the application must know what format is this rkey, 
> so they can pass it along while keeping its byte order 
> property. If all IB stacks return the rkey in network order, 
> and accept  rkey also in network order, then there is no 
> interop problem anymore.
> 
> Frank.
> 
> _______________________________________________
> ofw mailing list
> ofw at lists.openfabrics.org
> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw
> 



More information about the ofw mailing list