Project Home
Project Home
Documents
Documents
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
Forum Topic - Message passing between x86 and PPC: (7 Items)
   
Message passing between x86 and PPC  
Hi,

We've been designing a whole project with QNX message-passing as the main IPC scheme.  The problem is: our processes are
 on different machines with x86 and PowerPC processors.

And I just found out that cross-endian QNET does not work!!

Is there any workaround, that does not involve tcp/ip?
What about the package filesystem?  The conclusion of this article seems promising... http://www.qnx.com/developers/
articles/article_920_1.html

Thank you,
Geneviève
RE: Message passing between x86 and PPC  
 

> -----Original Message-----
> From: Geneviève Bastien [mailto:genevieve.bastien@versatic.net] 
> Sent: October 18, 2007 10:53 AM
> To: ostech-core_os
> Subject: Message passing between x86 and PPC
> 
> Hi,
> 
> We've been designing a whole project with QNX message-passing 
> as the main IPC scheme.  The problem is: our processes are on 
> different machines with x86 and PowerPC processors.
> 
> And I just found out that cross-endian QNET does not work!!
> 
> Is there any workaround, that does not involve tcp/ip?
> What about the package filesystem?  The conclusion of this 
> article seems promising... 
> http://www.qnx.com/developers/articles/article_920_1.html

That isn't what you are looking for.  The package filesystem only
re-directs clients to get content based on their CPU architecture.
Since it relies on the base messaging to work, it means that it
will fets an mipsle 'ls' instead of an x86 'ls' binary assuming 
it was hosted on an x86(le) machine.

There is some work in the HEAD version that allows the base cross
endian messages to start flowing through, but this hasn't been
released as product yet ... though you can pick it up and start
working with it now if you want.

Hope this helps,
 Thomas
RE: Message passing between x86 and PPC  
640 has support for cross-endian(procnto/libc/pipe/mq), but you'll also need
a head version of io-net for this to work.  The io-net source is scheduled
to be available soon.

Chris

-----Original Message-----
From: Thomas Fletcher [mailto:thomasf@qnx.com] 
Sent: Thursday, October 18, 2007 11:08 AM
To: ostech-core_os
Subject: RE: Message passing between x86 and PPC

 

> -----Original Message-----
> From: Geneviève Bastien [mailto:genevieve.bastien@versatic.net] 
> Sent: October 18, 2007 10:53 AM
> To: ostech-core_os
> Subject: Message passing between x86 and PPC
> 
> Hi,
> 
> We've been designing a whole project with QNX message-passing 
> as the main IPC scheme.  The problem is: our processes are on 
> different machines with x86 and PowerPC processors.
> 
> And I just found out that cross-endian QNET does not work!!
> 
> Is there any workaround, that does not involve tcp/ip?
> What about the package filesystem?  The conclusion of this 
> article seems promising... 
> http://www.qnx.com/developers/articles/article_920_1.html

That isn't what you are looking for.  The package filesystem only
re-directs clients to get content based on their CPU architecture.
Since it relies on the base messaging to work, it means that it
will fets an mipsle 'ls' instead of an x86 'ls' binary assuming 
it was hosted on an x86(le) machine.

There is some work in the HEAD version that allows the base cross
endian messages to start flowing through, but this hasn't been
released as product yet ... though you can pick it up and start
working with it now if you want.

Hope this helps,
 Thomas

_______________________________________________
OSTech
http://community.qnx.com/sf/go/post2106
Re: RE: Message passing between x86 and PPC  
Thank you for those answers.

The wiki page about cross-endian QNET mentions that for it to fully work, it also needs changes to the resource manager 
which is beyond the scope of 640.

Are the HEAD modifications enough to allow simple, cross-endian, message-passing through MsgSend/Receive/Reply and 
signals delivery.  That is all I need.

Geneviève

> 640 has support for cross-endian(procnto/libc/pipe/mq), but you'll also need
> a head version of io-net for this to work.  The io-net source is scheduled
> to be available soon.
> 
> Chris
> 
Re: RE: Message passing between x86 and PPC  
Simple message passing and signals should indeed work with the trunk version of QNET. 

Re: RE: Message passing between x86 and PPC  
As a further note, support for the raw message S/R/R is there but you will, of course, still have to take care of doing 
any cross-endian transformation of the message contents.

  QNET source is scheduled to be released in November as part of the Networking project.  This project includes our 
brand new networking stack based upon the latest NetBSD implementation.
Re: RE: Message passing between x86 and PPC  
Actually, head branch for QNET rather than io-net :->.   It's also quite important to note that any resource managers 
that are to be used need to be made cross-endian aware / capable as well.