• Home
    • View
    • Login
    This page
    • Normal
    • Export PDF
    • Page Information

    Loading...
  1. Dashboard
  2. Undefined Space
  3. Port: PowerPC/AIX
  4. Architecture of the OpenJDK PPC Port

Architecture of the OpenJDK PPC Port

  • Created by Goetz Lindenmaier, last modified on Oct 01, 2014


This page describes architectural decisions in the HotSpot VM PPC port. It explains extensions we made to shared code needed for PPC, but which might be also useful for other platforms.  Further it gives details of implementations in the PPC part.

Supported operating systems and processor implementations

AIX: The port supports AIX 5.3 and later. It is tested to be built with xlC 10. Starting with 8u40, we only support xlC 12.  Patch level 12.01.0000.0008 or higher is required.

Linux: We build and run the VM on SLES 10.3 with gcc 4.1.2, but support it on other Linux distributions, too.  Google contributed a port for the new little-endian Linux variants.

We do not support as400 pase. Contributions are welcome.

Processor: The port supports only 64-bit PPC machines. It recognizes Power chips 5 through 7 and generates code optimized for these processors. So far, it lacks an instruction scheduler targeted to Power 6, which is an in-order issueing processor.

Interpreter and Compiler

The port is derived from a VM targeted towards server applications. Therefore it focuses on maximizing peak performance. Thus, it utilizes the high end C2 optimizing compiler of HotSpot.  First, we ported the CPP interpreter, but by now also added a port of the template interpreter.  Since 8u20 big- and little-endian vairant should be built using the template interpreter, which is the default. 

The port does not support the C1 compiler. Contributions are welcome.

Supported HotSpot features

We support a wide range of basic functional flavours of the HotSpot VM. As of garbage collection, we support

  • The default GC.
  • Concurrent Mark and Sweep (-XX:+UseConcMarkSweepGC).

Support for G1 is also implemented, but we still test and fix issues.

We support biased locking to improve the locking performance. This is essential on PPC, as the lock instructions are expensive. Further we support compressed Oops to reduce memory usage.

The C2 compiler uses implicit null checks, which requires some adaptions to shared code as on AIX the zero page is not protected.

The port does not support tiered compilation, as the C1 compiler is not ported.

 

Here you find more detailed informations:

  • C++ interpreter features
  • C2 compiler extensions and new optimizations

 

 

 

 

Overview
Content Tools
ThemeBuilder
  • No labels

Terms of Use
• License: GPLv2
• Privacy • Trademarks • Contact Us

Powered by a free Atlassian Confluence Open Source Project License granted to https://www.atlassian.com/software/views/opensource-community-additional-license-offer. Evaluate Confluence today.

  • Kolekti ThemeBuilder Powered by Atlassian Confluence 8.5.21
  • Kolekti ThemeBuilder printed.by.atlassian.confluence
  • Report a bug
  • Atlassian News
Atlassian
Kolekti ThemeBuilder EngineAtlassian Confluence
{"serverDuration": 201, "requestCorrelationId": "864418d5300ab942"}