openjdk team mailing list archive
-
openjdk team
-
Mailing list archive
-
Message #14090
[Bug 1902029] [NEW] openjdk-lts 11.0.9+ could include Shenandoah GC on amd64
Public bug reported:
In OpenJDK 11.0.9, the Shenandoah GC has been backported from OpenJDK 15, and is considered "Ready for Production". References:
https://wiki.openjdk.java.net/display/shenandoah/Main
https://mail.openjdk.java.net/pipermail/jdk-updates-dev/2020-October/004007.html (11.0.9 release notes)
https://bugs.openjdk.java.net/browse/JDK-8250784 (the backport issue, with pointers to review discussions)
Just like ZGC, it is an optional feature, which must be explicitly enabled at build time. Some vendors enable it already:
https://wiki.openjdk.java.net/display/shenandoah/Main#Main-Releases
For instance, Fedora enables it on x86_64 (amd64), now without any specific patch (prior to 11.0.9, they were shipping the backport patch):
https://src.fedoraproject.org/rpms/java-11-openjdk/blob/master/f/java-11-openjdk.spec
I think Ubuntu should do the same, enable it on amd64 (just like ZGC),
and backport to Bionic/Focal. For some use-cases, Shenandoah has already
proved it brings valuable improvements compared to G1GC, it would be
nice being able to use it on Ubuntu-based containers/systems too.
I will attach an untested patch, just to show what I think is the
required change to debian/rules.
============
> We also need:
> 1) The release of Ubuntu you are using, via 'lsb_release -rd' or
System -> About Ubuntu
$ lsb_release -rd
Description: Ubuntu 18.04.5 LTS
Release: 18.04
> 2) The version of the package you are using, via 'apt-cache policy
pkgname' or by checking in Software Center
$ apt-cache policy openjdk-11-jre-headless
openjdk-11-jre-headless:
Installed: 11.0.9+11-0ubuntu1~18.04.1
Candidate: 11.0.9+11-0ubuntu1~18.04.1
Version table:
*** 11.0.9+11-0ubuntu1~18.04.1 500
500 http://nova.clouds.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
100 /var/lib/dpkg/status
10.0.1+10-3ubuntu1 500
500 http://nova.clouds.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
> 3) What you expected to happen
$ java -XX:+UseShenandoahGC -Xlog:gc -version
[0.004s][info][gc] Heuristics ergonomically sets -XX:+ExplicitGCInvokesConcurrent
[0.004s][info][gc] Heuristics ergonomically sets -XX:+ShenandoahImplicitGCInvokesConcurrent
[0.005s][info][gc] Using Shenandoah
openjdk version "11.0.9" 2020-XX-XX
...
> 4) What happened instead
$ java -XX:+UseShenandoahGC -Xlog:gc -version
Unrecognized VM option 'UseShenandoahGC'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
** Affects: openjdk-lts (Ubuntu)
Importance: Undecided
Status: New
** Patch added: "openjdk-lts_11.0.9+11_enable-shenandoahgc-on-amd64.patch"
https://bugs.launchpad.net/bugs/1902029/+attachment/5428942/+files/openjdk-lts_11.0.9+11_enable-shenandoahgc-on-amd64.patch
--
You received this bug notification because you are a member of OpenJDK,
which is subscribed to openjdk-lts in Ubuntu.
https://bugs.launchpad.net/bugs/1902029
Title:
openjdk-lts 11.0.9+ could include Shenandoah GC on amd64
Status in openjdk-lts package in Ubuntu:
New
Bug description:
In OpenJDK 11.0.9, the Shenandoah GC has been backported from OpenJDK 15, and is considered "Ready for Production". References:
https://wiki.openjdk.java.net/display/shenandoah/Main
https://mail.openjdk.java.net/pipermail/jdk-updates-dev/2020-October/004007.html (11.0.9 release notes)
https://bugs.openjdk.java.net/browse/JDK-8250784 (the backport issue, with pointers to review discussions)
Just like ZGC, it is an optional feature, which must be explicitly enabled at build time. Some vendors enable it already:
https://wiki.openjdk.java.net/display/shenandoah/Main#Main-Releases
For instance, Fedora enables it on x86_64 (amd64), now without any specific patch (prior to 11.0.9, they were shipping the backport patch):
https://src.fedoraproject.org/rpms/java-11-openjdk/blob/master/f/java-11-openjdk.spec
I think Ubuntu should do the same, enable it on amd64 (just like ZGC),
and backport to Bionic/Focal. For some use-cases, Shenandoah has
already proved it brings valuable improvements compared to G1GC, it
would be nice being able to use it on Ubuntu-based containers/systems
too.
I will attach an untested patch, just to show what I think is the
required change to debian/rules.
============
> We also need:
> 1) The release of Ubuntu you are using, via 'lsb_release -rd' or
System -> About Ubuntu
$ lsb_release -rd
Description: Ubuntu 18.04.5 LTS
Release: 18.04
> 2) The version of the package you are using, via 'apt-cache policy
pkgname' or by checking in Software Center
$ apt-cache policy openjdk-11-jre-headless
openjdk-11-jre-headless:
Installed: 11.0.9+11-0ubuntu1~18.04.1
Candidate: 11.0.9+11-0ubuntu1~18.04.1
Version table:
*** 11.0.9+11-0ubuntu1~18.04.1 500
500 http://nova.clouds.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
100 /var/lib/dpkg/status
10.0.1+10-3ubuntu1 500
500 http://nova.clouds.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
> 3) What you expected to happen
$ java -XX:+UseShenandoahGC -Xlog:gc -version
[0.004s][info][gc] Heuristics ergonomically sets -XX:+ExplicitGCInvokesConcurrent
[0.004s][info][gc] Heuristics ergonomically sets -XX:+ShenandoahImplicitGCInvokesConcurrent
[0.005s][info][gc] Using Shenandoah
openjdk version "11.0.9" 2020-XX-XX
...
> 4) What happened instead
$ java -XX:+UseShenandoahGC -Xlog:gc -version
Unrecognized VM option 'UseShenandoahGC'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/openjdk-lts/+bug/1902029/+subscriptions
Follow ups