Details

    • Author:
      Volker Simonis
    • JEP Type:
      Feature
    • Exposure:
      Open
    • Subcomponent:
    • Scope:
      Implementation
    • Discussion:
      s390x dash port dash dev at openjdk dot java dot net
    • Effort:
      M
    • Duration:
      M
    • Alert Status:
       Green
    • JEP Number:
      294

      Description

      Summary

      Port JDK 9 to Linux/s390x.

      Motivation

      s390x (also known under the names "System z" or "z/Architecture") is a mainframe architecture developed and supported by IBM. Several Linux distributions including Ubuntu, RHEL/Fedora and SuSE run on s390x.

      Current cloud deployments with packages like TomEE, Cassandra, Spark, Hadoop and Neo4j, to name just a few, rely heavily on Java. Because most of these packages are open source they run best on OpenJDK, which is currently not available for Linux/s390x.

      The reason for this JEP is to resolve this deficiency.

      Description

      SAP has a complete (i.e., template interpreter, C1, and C2 JIT) and certified (Java SE 1.4-8) s390x port which has been used in production for years. In the s390x Port Project we have already contributed this port, which runs on IBM System z models z10 or newer (64-bit only).

      The focus of this JEP is not the porting effort itself, which has been mostly completed, but rather the integration of the port into the JDK 9 master repository.

      Currently we have a patch queue with less than 10 changesets and with very few shared changes which shouldn't affect current platforms at all. Besides two minimal build changes in the top-level and jdk repositories, all the other changes are in the hotspot repository only.

      We have already started opening JBS issues for the shared changes and some of them are already under review.

      Alternatives

      Currently, the Zero port can be used to run the JDK on Linux/s390x but it is quite slow (because it only uses the old, deprecated C++ interpreter) and is not very well tested. It is no real alternative for running workloads like application servers or database applications written in Java.

      IBM's Developer Kit for Linux is also available for Linux/s390x but it is currently not open source and Java applications usually require some configuration/tuning in order to run with it. Also, it can not be used for testing new features of upcoming Java versions because it is only released after the JDK itself is GA.

      Testing

      This port has been used in production for years within our commercial SAP JVM offering. We are already building and testing the OpenJDK version of the port daily (by running jtreg and JCK tests, SPEC benchmarks, and several SAP applications), and are committed to do so in the future. Of course we will also maintain the port in the future and update it conforming to all upcoming requirements.

      Risks and Assumptions

      Unlike our previous PowerPC/AIX Port, this port requires only minimal changes to the existing code base, because:

      • s390x is a CISC architecture with a strong memory model
      • no OS-relevant changes are required because we only target Linux

      We don't foresee any impact on the existing platforms at all.

        Issue Links

          Activity

          Hide
          simonis Volker Simonis added a comment -
          According to the JEP process "a credible engineering plan should be documented in subtasks of the JEP issue" before a JEP can be "proposed to target". But this JEP is small with respect to its extent. All the required changes are already linked in the "relates to" section (some of them are already pushed, others are already reviewed and the remaining ones are currently under review). So I don't think it's worth while to create additional "artificial" subtasks before I'll propose this JEP to target.
          Show
          simonis Volker Simonis added a comment - According to the JEP process "a credible engineering plan should be documented in subtasks of the JEP issue" before a JEP can be "proposed to target". But this JEP is small with respect to its extent. All the required changes are already linked in the "relates to" section (some of them are already pushed, others are already reviewed and the remaining ones are currently under review). So I don't think it's worth while to create additional "artificial" subtasks before I'll propose this JEP to target.
          Hide
          kvn Vladimir Kozlov added a comment - - edited
          [~simonis] I set due and integration date which are required for targeted JEP. Please, adjust them if you think they are not reasonable.
          Show
          kvn Vladimir Kozlov added a comment - - edited [~simonis] I set due and integration date which are required for targeted JEP. Please, adjust them if you think they are not reasonable.
          Hide
          mr Mark Reinhold added a comment -
          Oops, sorry for the workflow churn -- I accidentally hit the "Target"
          button too soon, and that was the only way to unwind it.
          Show
          mr Mark Reinhold added a comment - Oops, sorry for the workflow churn -- I accidentally hit the "Target" button too soon, and that was the only way to unwind it.
          Hide
          kvn Vladimir Kozlov added a comment -
          Moved dates since I don't know when jdk9/hs will be stable to push into jdk9/dev.
          Show
          kvn Vladimir Kozlov added a comment - Moved dates since I don't know when jdk9/hs will be stable to push into jdk9/dev.
          Hide
          kvn Vladimir Kozlov added a comment -
          [~simonis] Volker, changes were integrated into jdk9/jdk9 master repository. Please, mark JEP as Integrated.
          Show
          kvn Vladimir Kozlov added a comment - [~simonis] Volker, changes were integrated into jdk9/jdk9 master repository. Please, mark JEP as Integrated.
          Hide
          kvn Vladimir Kozlov added a comment -
          [~simonis] Volker, please close this JEP - press "Delivered" button.
          Show
          kvn Vladimir Kozlov added a comment - [~simonis] Volker, please close this JEP - press "Delivered" button.

            People

            • Assignee:
              simonis Volker Simonis
              Reporter:
              simonis Volker Simonis
              Owner:
              Volker Simonis
              Reviewed By:
              Alan Bateman
              Endorsed By:
              Vladimir Kozlov
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

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