Skip to content

Upgrade OpenJDK to version 21 #303

@wks

Description

@wks

We are currently using OpenJDK 11. The latest release of OpenJDK is 24, and the latest long-term support version is 21. We plan to upgrade OpenJDK to version 21.

The work will be on the jdk-21.0.9+3-mmtk branch, and we will merge it into the master branch once it is ready. The jdk-21+35-mmtk branch is abandoned because it lacks the upstream fixes needed for the code to compile on modern C/C++ compilers and libc.

Things to do before merging jdk-21.0.9+3-mmtk into master:

  • Get OpenJDK 21 and the master revision of mmtk-core working on x86_64
  • Verify there is no performance anomaly on OpenJDK 21. Compare it against OpenJDK 21, using both MMTk plans and OpenJDK's stock GC (Parallel and G1).
  • Get CI working. The CI should behave the same as the current master branch, except with OpenJDK 21 instead.

Testing plans after merging the OpenJDK 21 binding:

  • Make OpenJDK 21 the branch for binding tests (both minimal and extended) in mmtk-core. The branch name will still be master, but some testing scripts may need to be updated.
  • Update the CI performance tests to use OpenJDK 21. We should switch to DaCapo Chopin at the same time and disable -Xcomp because it is known to severely impact both mutator and GC performance. (See this Zulip dialog)
  • Maintain minimal tests for OpenJDK 11 as long as @tianleq is still depending on OpenJDK 11. We only need to test the Immix plan because that's what he uses.

There are other things to do to get OpenJDK 21 fully functioning. They can be done after we merge the OpenJDK 21 binding into master.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions