Oracle JDK on 64-bit ARM - July 2014 update

Oracle and ARM have been working together for a while now to port the Oracle JDK 8 to the 64-bit ARMv8 micro architecture, in support of the introduction of 64-bit ARM-based servers. This project is making good progress and remains on track for GA in the first half of CY2015. Collaboration with hardware partners is going well:

  • AMD: We are expecting the first systems from AMD shortly and will start working immediately to verify our implementation on them.
  • Applied Micro: Development and QA is currently done almost exclusively on Applied Micro X-Gene hardware. We have had access to their systems for a while, and they have been arriving in increasing numbers lately.
  • Cavium: We are engaged with Cavium and will be working on their systems as soon as they start shipping to development partners.

And current project status is green:

  • We have both the client (C1) and server (C2) compilers working, passing the TCK and a large battery of tests including stress/endurance.
  • Remaining work includes serviceability features like the Java Flight Recorder, application testing, bug fixing and performance benchmarking/optimizations.
  • We are now signing up the first set of partners and customers for a managed beta program to get feedback on quality, performance, features and target workloads. This is a major milestone that signals us moving from R&D towards being production ready.
  • Public early access program will be available later during the development project, after we have reached the Feature Complete milestone.

We plan to share more details about the features and schedule towards GA at JavaOne 2014. Be there to get the news first-hand, and also to see a variety of real workloads run on ARMv8 systems from our development partners.


Do I remember correctly that Oracle is doing this work outside of the OpenJDK project and that you have no plans to merge it?

Posted by James Stansell on July 24, 2014 at 12:27 PM PDT #

Hi James - Correct, we have no plans to open source our ARM port. As I have explained many times on this blog we fund Java development mainly through two sources: per-unit license fees for embedded ports (footprint optimized and available on OSes commonly used for embedded devices) and support for the Oracle JDK on general purpose systems. Right now all our ARM development is considered "embedded". If/when ARM gets more traction as a general purpose computer and we start getting support revenue to cover the cost may reconsider, but for now the embedded royalties are an important revenue source for us. Without it, we could nor afford maintaining a high-quality ARM port since every division within Oracle must fund itself to a reasonable degree. We will, however, make the ARMv8 port available under the royalty-free Binary Code License. So free-as-in-beer, but not free-as-in-liberty. -- Henrik

Posted by Henrik on July 24, 2014 at 01:06 PM PDT #

Isn't this a little short-sighted? OpenJDK already has a arm64 port which various distros already ship. By keeping your own work separate from the community work won't it be much harder to work together?

Posted by mark on July 28, 2014 at 01:52 AM PDT #

Very exciting news. I follow the ARM server market. I see the three companies you called out for ARM server suppliers. From a timing perspective, how long does it take to port the application to the given server chip? I mean currently it sounds like you are only working with AMCC and soon AMD and later CAVM. How long does it take from hardware to completion on the given chip? Is there the ability to take what you learned on AMCC and carry that over to the other chips so the time is shorter? I believe you have been working with X-Gene for a year plus.


Posted by guest on July 28, 2014 at 05:49 AM PDT #

Very exciting information. I was wondering how long it took to properly write the software for AppliedMicro? Also, if it should be quicker on AMD / CAVM because of the ability for reuse?


Posted by Mike on July 28, 2014 at 10:41 AM PDT #

I saw the AMD 64-bit ARM Opteron systems are now available.
The Developer Kit comes with Fedora, GNU toolchain and Java implementations.
Fedora, Red Hat, Linaro and AMD all seem to cooperate on OpenJDK. Why not join forces?

Posted by mark on July 31, 2014 at 06:59 AM PDT #

All - I have numerous times explained on this blog why we chose to develop our ARM port in closed source. To reiterate, it is based on our embedded ARMv7 port, which is a commercial product. Without the revenue from that product, we would not be able to fund the server-side ARM JDK port.

Mike - It takes about a year to developed a high quality/performance port to a new micro architecture. Our efforts are based on our embedded ARMv7 port, and the first target is Applied Micro hardware for the simple reason that we had hardware from them much earlier than from other vendors. Most optimizations are generic for ARMv8 (64-bit ARM) but there is obviously a bias towards the hardware we work on. The port should work as-is on hardware from other vendors such as AMD and Cavium, but there is of course plenty of opportunity for implementation-specific optimizations. To what extent we pursue these depends on how much our partners (ARM, APM, Cavium, AMD and others) choose to invest together with us.

I will also mention that while we are positive to community efforts to port OpenJDK to new hardware architectures - including those sponsored by Red Hat - history has shown that such efforts are not likely to be successful unless they receive significant and continuous resourcing (by a large organization). All community ports I have seen so far have started out well but then failed to be maintained. The only effort I think is likely to be successful long-term is the PPC port which is being sponsored by IBM and SAP. Note that ports to new OSes on known hardware (such as the BSD port to x86) are a lot easier and are more realistic for the non-enterprise part of the community.


Posted by Henrik on July 31, 2014 at 07:19 AM PDT #

Post a Comment:
Comments are closed for this entry.

Henrik Stahl is VP of Product Management in the Java Platform Group at Oracle, and is responsible for product strategy for Java ME and SE.


« June 2016