From Richard.Barnes at stratus.com Thu Dec 3 11:41:26 2009 From: Richard.Barnes at stratus.com (Barnes, Richard) Date: Thu, 3 Dec 2009 14:41:26 -0500 Subject: FW: Porting OpenJDK 6 to Stratus OpenVOS on IA32 -- %EBP and the HotSpot server compiler Message-ID: <5AA430FFE4486C448003201AC83BC85E470641@EXHQ.corp.stratus.com> There is a comment in hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/x86/X86CurrentFr ameGuess.java that says that EBP is not guaranteed to be valid for compiled code. In the context of this code that fact is considered a nuisance for debugging, but not a show-stopper. For OpenVOS, this fact could cause real problems in that our stack conventions require that at least one of two conditions for all code being executed is true: * %EBP is the frame pointer for the current stack frame or the code for this procedure must not have modified %EBP. * The code must be covered by what we call a block_map and entry_block that describes how the size of the stack frame for the code is calculated. (This allows us to use %EBP as something other than a frame pointer unless the frame size is variable.) I am assuming that it is probably too hard to get the server compiler to generate a block_map and entry_block, which we did get GCC to do, So, what we are wondering is whether there might be an easy way to get the server compiler to either use %EBP as a frame pointer or to not modify it at all. I note that both GCC and our native OpenVOS compilers have both internal and external switches that allow us to do just that. If no such switch exists, would there be a way to modify the server compiler or a table it uses to get the behavior we desire? If not, is there any reliable way we can walk the stack without these changes? Thanks, Richard Barnes Senior Technical Consultant Stratus Technologies > ______________________________________________ > From: Barnes, Richard > Sent: Friday, September 12, 2008 4:31 PM > To: 'porters-dev at openjdk.java.net' > Cc: 'Joe.Darcy at Sun.COM'; Richard Barnes > Subject: Porting OpenJDK 6 to Stratus OpenVOS on IA32 > > I am part of a small team at Stratus Technologies that is planning to > port OpenJDK6 to its proprietary OpenVOS operating system running on > IA32. What makes this interesting and unusual is that even though we > are targeting a little-endian chip, for compatibility reasons OpenVOS > must present a big-endian environment to its users, so that gcc and > g++, as well as native OpenVOS compilers, produce code that makes IA32 > appear to be big-endian at the source level. The internals of OpenVOS > are quite different from the internals of Unix, but we have added a > POSIX.1 API to our operating system in recent years, which should help > to make this project possible. The runtime conventions are close to > those of Unix on IA32, with the exception of endianness and some > register usage, but that should not be insurmountable. > > When I first sent mail to jdk-6.dev, Joe Darcy of Sun suggested that > we check in with this group for community advice. > > For these reasons, we hope to have our project accepted to join > OpenJDK. > > Thanks, > > Richard Barnes > Senior Technical Consultant > Stratus Technologies > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/porters-dev/attachments/20091203/10a785a6/attachment.html From aoq at lemote.com Thu Dec 17 04:54:22 2009 From: aoq at lemote.com (=?gb2312?B?sL3n9w==?=) Date: Thu, 17 Dec 2009 20:54:22 +0800 Subject: How to contribute the already work (mips port) to OpenJDK? Message-ID: <200912172054215082331@lemote.com> How to contribute the already work (mips port) to OpenJDK? Hi all, Can Shark, the JIT compiler of iceadtea project, work on mips now? Except Shark, what else JIT compiler can work on mips? I googled but I got no useful hits. The company (http://www.lemote.com/english/index.html) I work for has some experience in porting the jdk including hotspot to mips (loongson2) on linux, and we are interested in participating in the work on porting OpenJDK to mips. I found Port Project for the MIPS Architecture on OpenJDK??s website, but I didn??t get much information there. Could anyone give some advice about our next step or next work please? Is there any one interested in this or could some one give some support? Thanks. Best wishes Ao Qi From Dalibor.Topic at Sun.COM Thu Dec 17 08:32:06 2009 From: Dalibor.Topic at Sun.COM (Dalibor Topic) Date: Thu, 17 Dec 2009 17:32:06 +0100 Subject: How to contribute the already work (mips port) to OpenJDK? In-Reply-To: <200912172054215082331@lemote.com> References: <200912172054215082331@lemote.com> Message-ID: <4B2A5D06.6090905@sun.com> ?? wrote: > Can Shark, the JIT compiler of iceadtea project, work on mips now? Hi, I don't think that Shark works on MIPS yet - Shark uses LLVM, which has an experimental MIPS backend, but no MIPS JIT backend yet, afaict. A good place to ask about Shark would be the zero-dev mailing list. Except Shark, what else JIT compiler can work on mips? There is no MIPS JIT in OpenJDK. You may be able to get OpenJDK + IcedTea + Cacao working on MIPS - but I'm not familiar with how well that combination works in practice. The best place to ask about that combination would be the distro-pkg-dev mailing list. > I found Port Project for the MIPS Architecture on OpenJDK?s website, but I didn?t get much information there. I cc:ed Jonathan Springer, who's been working on the OpenJDK MIPS porting project, he may be able to give you a current status update. > Could anyone give some advice about our next step or next work please? Is there any one interested in this or could some one give some support? Thanks. I think it would be really great to get more activity on the MIPS port. From the process side, you should make yourself familiar with the documents describing contributing to OpenJDK at http://openjdk.java.net/contribute/ . Depending on what you want to do, it may make sense to start contributing to the existing MIPS interpreter porting project in order to port HotSpot to MIPS, or to start hacking on Shark & a LLVM MIPS JIT backend, to make that combination work. In either case, please coordinate with the respective projects on their mailing lists. cheers, dalibor topic -- ******************************************************************* Dalibor Topic Tel: (+49 40) 23 646 738 Java F/OSS Ambassador AIM: robiladonaim Sun Microsystems GmbH Mobile: (+49 177) 2664 192 Nagelsweg 55 http://openjdk.java.net D-20097 Hamburg mailto:Dalibor.Topic at sun.com Sitz der Gesellschaft: Sonnenallee 1, D-85551 Kirchheim-Heimstetten Amtsgericht M?nchen: HRB 161028 Gesch?ftsf?hrer: Thomas Schr?der, Wolfgang Engels, Wolf Frenkel Vorsitzender des Aufsichtsrates: Martin H?ring From Dalibor.Topic at Sun.COM Thu Dec 17 08:35:31 2009 From: Dalibor.Topic at Sun.COM (Dalibor Topic) Date: Thu, 17 Dec 2009 17:35:31 +0100 Subject: FW: Porting OpenJDK 6 to Stratus OpenVOS on IA32 -- %EBP and the HotSpot server compiler In-Reply-To: <5AA430FFE4486C448003201AC83BC85E470641@EXHQ.corp.stratus.com> References: <5AA430FFE4486C448003201AC83BC85E470641@EXHQ.corp.stratus.com> Message-ID: <4B2A5DD3.5090305@sun.com> Barnes, Richard wrote: > There is a comment in > hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/x86/X86CurrentFrameGuess.java > that says that EBP is not guaranteed to be valid for compiled code. In > the context of this code that fact is considered a nuisance for > debugging, but not a show-stopper. Hi Richard, I believe that this question is best suited for the hotspot-dev mailing list. cheers, dalibor topic -- ******************************************************************* Dalibor Topic Tel: (+49 40) 23 646 738 Java F/OSS Ambassador AIM: robiladonaim Sun Microsystems GmbH Mobile: (+49 177) 2664 192 Nagelsweg 55 http://openjdk.java.net D-20097 Hamburg mailto:Dalibor.Topic at sun.com Sitz der Gesellschaft: Sonnenallee 1, D-85551 Kirchheim-Heimstetten Amtsgericht M?nchen: HRB 161028 Gesch?ftsf?hrer: Thomas Schr?der, Wolfgang Engels, Wolf Frenkel Vorsitzender des Aufsichtsrates: Martin H?ring From Richard.Barnes at stratus.com Thu Dec 17 08:42:34 2009 From: Richard.Barnes at stratus.com (Barnes, Richard) Date: Thu, 17 Dec 2009 11:42:34 -0500 Subject: FW: Porting OpenJDK 6 to Stratus OpenVOS on IA32 -- %EBP and theHotSpot server compiler In-Reply-To: 4B2A5DD3.5090305@sun.com References: <5AA430FFE4486C448003201AC83BC85E470641@EXHQ.corp.stratus.com> 4B2A5DD3.5090305@sun.com Message-ID: <5AA430FFE4486C448003201AC83BC85E4706AA@EXHQ.corp.stratus.com> Hi Dalibor, I have managed to solve this on my own by using conditional compilation to make sure that %EBP is not part of most reg_classes used for register allocation on VOS. I'm on to other problems. Thanks for the tip, though. Richard -----Original Message----- From: Dalibor.Topic at Sun.COM [mailto:Dalibor.Topic at Sun.COM] Sent: Thursday, December 17, 2009 11:36 AM To: Barnes, Richard Cc: 'porters-dev at openjdk.java.net' Subject: Re: FW: Porting OpenJDK 6 to Stratus OpenVOS on IA32 -- %EBP and theHotSpot server compiler Barnes, Richard wrote: > There is a comment in > hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/x86/X86CurrentFrameGuess.java > that says that EBP is not guaranteed to be valid for compiled code. In > the context of this code that fact is considered a nuisance for > debugging, but not a show-stopper. Hi Richard, I believe that this question is best suited for the hotspot-dev mailing list. cheers, dalibor topic -- ******************************************************************* Dalibor Topic Tel: (+49 40) 23 646 738 Java F/OSS Ambassador AIM: robiladonaim Sun Microsystems GmbH Mobile: (+49 177) 2664 192 Nagelsweg 55 http://openjdk.java.net D-20097 Hamburg mailto:Dalibor.Topic at sun.com Sitz der Gesellschaft: Sonnenallee 1, D-85551 Kirchheim-Heimstetten Amtsgericht M?nchen: HRB 161028 Gesch?ftsf?hrer: Thomas Schr?der, Wolfgang Engels, Wolf Frenkel Vorsitzender des Aufsichtsrates: Martin H?ring From springer at reservoir.com Thu Dec 17 09:07:27 2009 From: springer at reservoir.com (Jonathan Springer) Date: Thu, 17 Dec 2009 11:07:27 -0600 Subject: How to contribute the already work (mips port) to OpenJDK? In-Reply-To: <200912172054215082331@lemote.com> References: <200912172054215082331@lemote.com> Message-ID: <4B2A654F.7010007@reservoir.com> Hi, ???? wrote: > Can Shark, the JIT compiler of iceadtea project, work on mips now? Except Shark, what else JIT compiler can work on mips? I googled but I got no useful hits. > The company (http://www.lemote.com/english/index.html) I work for has some experience in porting the jdk including hotspot to mips (loongson2) on linux, and we are interested in participating in the work on porting OpenJDK to mips. I found Port Project for the MIPS Architecture on OpenJDK??s website, but I didn??t get much information there. Could anyone give some advice about our next step or next work please? Is there any one interested in this or could some one give some support? Thanks. Others will speak for Shark/LLVM, but I worked on a native port to MIPS. The interpreter was finished, using OpenJDK's asm interpreter as opposed to its C++ one, but the compiler was not done (lack of funding for the project). You could start from that base if you wanted. You'd want to start by merging up from the relatively ancient version it was based on (anyone remember b18?). -Jonathan -- Jonathan Springer | Reservoir Labs, Inc. | http://www.reservoir.com/