OpenJDK Logo
Power Logo from http://it.wikipedia.org/wiki/File:Power-architecture-logo.png

Power to the People -
the OpenJDK PowerPC/AIX Port

Steve Pool (IBM) , Götz Lindenmaier & Volker Simonis (SAP)

Current Status

Build Results

http://cr.openjdk.java.net/~simonis/ppc-aix-port/

OpenJDK PowerPC Port for Linux and AIX Nightly Build Results

Performance - JVM98

JVM98 results

Performance - JVM2008

JVM2008 results

Our background - the SAP JVM

The SAP JVM supports Java 1.4, 5, 6, 7 and runs on 15 platforms:

..and we provide support for any SAP JVM version until the end of days:)

The SAP JVM is derived from the Sun/Oracle code base:

We constantly integrate Oracle changes:

The OpenJDK Project and how we joined

Announced at JavaOne 2006

SAP can't use OpenJDK directly:

It took 5 years until SAP "officially" joined the OpenJDK project:

Today, the OpenJDK is a playground and collaboration space for different implementers:

The OpenJDK Source Tree

The OpenJDK consists of two major building blocks

The HotSpot VM

The HotSpot VM first appeared in 2000 with Java 1.3 and is constantly evolving since then:

Porting the HotSpot VM - Effort

The C++Interpreter

One big challange when porting the C++Interpreter is that you first have implement
a Macro Assembler for your architecture!

The C2 "Server" JIT Compiler

The C2 "Server" JIT Compiler is the biggest (and most complicated) part of the HotSpot VM.
It consists of three main parts:

For every new architecture the corresponding AD file has to be written which means:

Changes in shared code

Basic changes:

Changes in shared code

Adaptions and fixes of existing features in the C2 compiler

Changes in shared code

Extended and new features: Cpp-Interpreter

To use the Cpp-Interpreter in a fully fletched VM we implemented support for:

Changes in shared code

Extended and new features: C2 compiler

Changes in shared code:

Extended and new features: runtime

Otimizations not yet contributed

Porting-Lessons learned

During the last year we've ported HotSpot to quite some new platforms and we learned t
Reactivating and supporting currently unused code: - C++Interpreter Changes in shared code - building a core (interpreter-only) VM - generating SafeFetch stubs - extending the ADLC (LateExpand nodes) - configurable stack growth direction

Questions?

Rechenmaschiene von Philipp Matthäus Hahn (1739-1790) Quelle: Württembergisches Landesmuseum Stuttgart