Details

    • Author:
      Andrew Haley
    • JEP Type:
      Feature
    • Exposure:
      Open
    • Subcomponent:
    • Scope:
      Implementation
    • Discussion:
      aarch64 dash port dash dev at openjdk dot java dot net
    • Effort:
      L
    • Duration:
      S
    • Alert Status:
       Green
    • JEP Number:
      237

      Description

      Summary

      Port JDK 9 to Linux/AArch64.

      Motivation

      AArch64 is the new processor architecture from ARM Holdings plc. It is a departure from the 32-bit ARM processor architecture, and is effectively a complete redesign. It needs a new OpenJDK port.

      Description

      We (the AArch64 Porting Project) have ported the JDK to a new platform: Linux/AArch64. We have implemented the template interpreter, the C1 (client) and the C2 (server) JIT compilers.

      The focus of this JEP is not the porting effort itself, which has been mostly completed, but rather the integration of the ports into the OpenJDK master repositories.

      Currently we have a large number of trivial changesets in the shared part of the HotSpot repository. These are mostly #ifdef's that include the relevant platform-specific files. There are a few changes of other kinds, but again these are guarded by #ifdef AARCH64. Thus, the risk to other platforms is low.

      There are also changes to the build machinery of HotSpot and rest of the JDK to add appropriate definitions for endianness, word size, and so on. Again, these should not affect other platforms.

      Most of the changes to be integrated won’t affect the current OpenJDK platforms in any way because they are only active on the new platform.

      There are also changes in the build system but they shouldn’t cause much trouble.

      Here is a patch of the changes needed to the shared code in HotSpot.

      All changesets are collected in a staging repository: http://hg.openjdk.java.net/aarch64-port/stage/

      Testing

      Red Hat and Linaro regularly build and test the ports on the porting platforms as well as on the currently-supported JDK 8 platforms to ensure that no regressions are being introduced which break the existing platforms.

      Red Hat is committed to support fully (i.e., regularly update, enhance, and test) the code for the new platforms introduced by this effort.

      Risks and Assumptions

      There are potentially some issues with the availablility of AArch64 hardware to do this work, but we hope that it will become widely available in the course of this project.

      Similarly to the PPC/AIX port, a staging forest owned by the AArch64 Port Project will be created (e.g., aarch64-port/stage) to contain changesets that have been Reviewed and approved.

        Activity

        Hide
        kvn Vladimir Kozlov added a comment -
        Mikael, please review
        Show
        kvn Vladimir Kozlov added a comment - Mikael, please review
        Hide
        kvn Vladimir Kozlov added a comment -
        It still needs to be reviewed by Mikael.
        Show
        kvn Vladimir Kozlov added a comment - It still needs to be reviewed by Mikael.
        Hide
        mikael Mikael Vidstedt added a comment -
        Andrew - I provided some feedback in an email on July 10th, can you please have a look at that and incorporate that in the JEP if you agree?
        Show
        mikael Mikael Vidstedt added a comment - Andrew - I provided some feedback in an email on July 10th, can you please have a look at that and incorporate that in the JEP if you agree?
        Hide
        aph Andrew Haley added a comment -
        I have made the changes as requested.
        Show
        aph Andrew Haley added a comment - I have made the changes as requested.
        Hide
        kvn Vladimir Kozlov added a comment - - edited
        All changes were pushed into aarch64 stage repo. Here is the webrev of all (Hotspot+jdk+top) changes relative to latest jdk9/dev (01/20/2015):
        http://cr.openjdk.java.net/~kvn/aarch64_merge/webrev
        Show
        kvn Vladimir Kozlov added a comment - - edited All changes were pushed into aarch64 stage repo. Here is the webrev of all (Hotspot+jdk+top) changes relative to latest jdk9/dev (01/20/2015): http://cr.openjdk.java.net/~kvn/aarch64_merge/webrev
        Hide
        kvn Vladimir Kozlov added a comment -
        Mark, we need to move this JEP to 'Candidate' and 'Targeted' states if there are no objections.

        We are starting to test these changes and they will be ready to merge into jdk9 soon.
        Thanks!
        Show
        kvn Vladimir Kozlov added a comment - Mark, we need to move this JEP to 'Candidate' and 'Targeted' states if there are no objections. We are starting to test these changes and they will be ready to merge into jdk9 soon. Thanks!
        Show
        kvn Vladimir Kozlov added a comment - The port was integrated into jdk9/dev on March 02 2015. Here are notification mails: http://mail.openjdk.java.net/pipermail/jdk9-dev-changes/2015-March/002885.html http://mail.openjdk.java.net/pipermail/jdk9-dev-changes/2015-March/002886.html http://mail.openjdk.java.net/pipermail/jdk9-dev-changes/2015-March/002887.html

          People

          • Assignee:
            kvn Vladimir Kozlov
            Reporter:
            aph Andrew Haley
            Owner:
            Andrew Haley
            Reviewed By:
            Mikael Vidstedt, Vladimir Kozlov
            Endorsed By:
            Mikael Vidstedt
          • Votes:
            1 Vote for this issue
            Watchers:
            10 Start watching this issue

            Dates

            • Due:
              Created:
              Updated:
              Resolved:
              Integration Due: