Discussion:
SPARC-V9 bi-endian question
Tim Zielke
2014-07-18 18:21:28 UTC
Permalink
Hello,

I was curious if anyone had run across this with MQ on Solaris SPARC.

I was doing some research on CPU endianness (for an MQTC session), and just read that the SPARC-V9 processor is a bi-endian processor for data access. So in other words, you can configure it to load and store data in either big or little endian format. The default is big endian.

That made me wonder about how MQ on Solaris SPARC would work, if a shop configured their SPARC-V9 processors to be little endian.

The MQ native encoding for Solaris SPARC is big endian.

cmqc.h: #define MQENC_NATIVE 0x00000111

I would think the Solaris SPARC queue manager would read MQLONG fields (i.e. Version, GMO Options, etc.) incorrectly, if a user did run the SPARC-V9 as little endian for data access.

I didn't see anything documented about this topic of SPARC-V9 being bi-endian in the MQ manual.

Just curious if anyone has run across this scenario of running the SPARC-V9 as a little endian processor (for data access) with MQ on Solaris.

Thanks,
Tim

To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org and,
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
Paul Clarke
2014-07-18 18:58:40 UTC
Permalink
I’ll be honest and say I don’t know a great deal about SPARC-V9. However, what I’ve read suggests that the architecture merely allows certain data and memory access to be done in little-endian. Although I did find a page suggesting that it was done so that Windows NT could be ported to run on SPARC hardware.

However, are you sure that the user can just configure the whole machine to start up in little-endian and then run as if nothing was different ? Personally I would have thought MQENC_NATIVE would be the least of your worries. What OS would you then install ? A little-endian version of Solaris ? Is there such a thing ? ...and then, what version of MQ would you install ?

Cheers,
Paul.

Paul Clarke
www.mqgem.com

From: Tim Zielke
Sent: Friday, July 18, 2014 7:21 PM
To: MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org
Subject: SPARC-V9 bi-endian question

Hello,



I was curious if anyone had run across this with MQ on Solaris SPARC.



I was doing some research on CPU endianness (for an MQTC session), and just read that the SPARC-V9 processor is a bi-endian processor for data access. So in other words, you can configure it to load and store data in either big or little endian format. The default is big endian.



That made me wonder about how MQ on Solaris SPARC would work, if a shop configured their SPARC-V9 processors to be little endian.



The MQ native encoding for Solaris SPARC is big endian.



cmqc.h: #define MQENC_NATIVE 0x00000111



I would think the Solaris SPARC queue manager would read MQLONG fields (i.e. Version, GMO Options, etc.) incorrectly, if a user did run the SPARC-V9 as little endian for data access.



I didn’t see anything documented about this topic of SPARC-V9 being bi-endian in the MQ manual.



Just curious if anyone has run across this scenario of running the SPARC-V9 as a little endian processor (for data access) with MQ on Solaris.



Thanks,

Tim



--------------------------------------------------------------------------------

List Archive - Manage Your List Settings - Unsubscribe
Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com

To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org and,
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
Tim Zielke
2014-07-18 19:22:29 UTC
Permalink
Hi Paul,

I am definitely not an expert, either. I think you are right, based on a little more research. It looks like this is not really a configurable option to run the Solaris SPARC operating system or applications in a little endian CPU environment. Just more of a lower level thing to be exploited for other reasons. Anyway, thanks for the input!

Thanks,
Tim

From: MQSeries List [mailto:***@LISTSERV.MEDUNIWIEN.AC.AT] On Behalf Of Paul Clarke
Sent: Friday, July 18, 2014 1:59 PM
To: ***@LISTSERV.MEDUNIWIEN.AC.AT
Subject: Re: SPARC-V9 bi-endian question

I’ll be honest and say I don’t know a great deal about SPARC-V9. However, what I’ve read suggests that the architecture merely allows certain data and memory access to be done in little-endian. Although I did find a page suggesting that it was done so that Windows NT could be ported to run on SPARC hardware.

However, are you sure that the user can just configure the whole machine to start up in little-endian and then run as if nothing was different ? Personally I would have thought MQENC_NATIVE would be the least of your worries. What OS would you then install ? A little-endian version of Solaris ? Is there such a thing ? ...and then, what version of MQ would you install ?

Cheers,
Paul.

Paul Clarke
www.mqgem.com<http://www.mqgem.com>

From: Tim Zielke<mailto:***@AON.COM>
Sent: Friday, July 18, 2014 7:21 PM
To: ***@LISTSERV.MEDUNIWIEN.AC.AT<mailto:***@LISTSERV.MEDUNIWIEN.AC.AT>
Subject: SPARC-V9 bi-endian question

Hello,

I was curious if anyone had run across this with MQ on Solaris SPARC.

I was doing some research on CPU endianness (for an MQTC session), and just read that the SPARC-V9 processor is a bi-endian processor for data access. So in other words, you can configure it to load and store data in either big or little endian format. The default is big endian.

That made me wonder about how MQ on Solaris SPARC would work, if a shop configured their SPARC-V9 processors to be little endian.

The MQ native encoding for Solaris SPARC is big endian.

cmqc.h: #define MQENC_NATIVE 0x00000111

I would think the Solaris SPARC queue manager would read MQLONG fields (i.e. Version, GMO Options, etc.) incorrectly, if a user did run the SPARC-V9 as little endian for data access.

I didn’t see anything documented about this topic of SPARC-V9 being bi-endian in the MQ manual.

Just curious if anyone has run across this scenario of running the SPARC-V9 as a little endian processor (for data access) with MQ on Solaris.

Thanks,
Tim

________________________________
List Archive<http://listserv.meduniwien.ac.at/archives/mqser-l.html> - Manage Your List Settings<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1> - Unsubscribe<mailto:***@LISTSERV.MEDUNIWIEN.AC.AT?subject=Unsubscribe&BODY=signoff%20mqseries>

Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com<http://www.lsoft.com/resources/manuals.asp>

________________________________
List Archive<http://listserv.meduniwien.ac.at/archives/mqser-l.html> - Manage Your List Settings<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1> - Unsubscribe<mailto:***@LISTSERV.MEDUNIWIEN.AC.AT?subject=Unsubscribe&BODY=signoff%20mqseries>

Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com<http://www.lsoft.com/resources/manuals.asp>

To unsubscribe, write to ***@LISTSERV.MEDUNIWIEN.AC.AT and,
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
Bruce Lerner
2014-07-19 15:32:39 UTC
Permalink
Apologies for citing wikipedia. From http://en.wikipedia.org/wiki/SPARC:

"The endianness of the 32-bit SPARC V8 architecture is purely big-endian. The 64-bit SPARC V9 architecture uses big-endian instructions, but can access data in either big-endian or little-endian byte order, chosen either at the application instruction (load/store) level or at the memory page level (via an MMU setting). The latter is often used for accessing data from inherently little-endian devices, such as those on PCI buses."

More basic to your question: ENCODING, CCSID, FORMAT, and other fields in the MQMD are used to describe how your putting application stored your data in the application payload portion of the message. MQMD fields do not dictate how the hardware stores your application data.

The consuming application (or qmgr where the consuming app executes) must rely on the truthiness of the MQMD fields.

To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org and,
in the message body (not the subject), write: SIGNOFF MQSERIES

Loading...