RFR (11u, XXL): Upstream/backport Shenandoah to JDK11u
Roman Kennke
rkennke at redhat.com
Thu Feb 6 19:43:34 UTC 2020
Hello all,
This is an update on the proposed patch.
- It is rebased on latest jdk11u-dev, and in particular on the backport of:
https://bugs.openjdk.java.net/browse/JDK-8209686
... which considerably improves C2 shared-code-changes.
- Includes the latest bunch of Shenandoah/jdk11u backports by Aleksey:
https://mail.openjdk.java.net/pipermail/shenandoah-dev/2020-February/011417.html
Full webrev:
http://cr.openjdk.java.net/~rkennke/shenandoah-jdk11u-upstream/webrev.03-all/
Shared-code webrev:
http://cr.openjdk.java.net/~rkennke/shenandoah-jdk11u-upstream/webrev.03-shared/
Please review/test that instead of the previous patches.
Thanks,
Roman
> Hello,
>
> The Shenandoah GC has been integrated into jdk12 a little over a year ago:
>
> http://hg.openjdk.java.net/jdk/jdk/rev/9c18c9d839d3
>
> The Shenandoah team has been maintaining the Shenandoah-enabled jdk11u
> downstream repository since the inception of jdk11 under:
>
> http://hg.openjdk.java.net/shenandoah/jdk11
>
> In order to make it more useful and accessible for users, we would like
> to make it available in upstream jdk11u. The Shenandoah team at Red Hat
> intends to maintain it the same way it had been maintained in
> shenandoah/jdk11, in the course of regular jdk11u maintenance Red Hat
> already does.
>
> Thanks to recent changes in Shenandoah over the last year, we are now
> able to fit the GC interface in jdk11 almost exactly. There are a few
> exceptions though. We tried to follow the following pattern for all
> shared-code changes where it made sense:
>
> #if INCLUDE_SHENANDOAH_GC
> if (UseShenandoahGC) {
> ...
> }
> #endif
>
> This ensures that the Shenandoah-specific changes are cut out of the
> build when building without Shenandoah, and avoid those code paths at
> runtime when running without Shenandoah.
>
> Also, there are a few places where this was not possible or where it
> didn't seem feasible, but we tried to keep them few and obvious.
> Whenever this is the case, we are mirroring as close as possible what we
> have in jdk/jdk.
>
> Architecture-wise, Shenandoah runs on x86_64, aarch64, x86_32. Other
> architectures still build fine, and Shenandoah gets automatically
> disabled during configure if not supported. OS-wise, Shenandoah runs on
> Linux, Windows, and is known to run on MacOS X and Solaris too.
>
> I wasn't sure which form this should take. I decided to start with the
> easiest possible form this could take: a simple patch/webrev and an RFR.
> Let me know if you need a JIRA issue or any other formalities to track that.
>
> Full webrev:
> https://cr.openjdk.java.net/~rkennke/shenandoah-jdk11u-upstream/webrev.02-all/
>
> Webrev only for shared-code changes:
> https://cr.openjdk.java.net/~rkennke/shenandoah-jdk11u-upstream/webrev.02-shared/
>
> The webrevs are based on and depend on the arraycopy patch proposed for
> review here:
>
> https://mail.openjdk.java.net/pipermail/jdk-updates-dev/2020-January/002396.html
>
> Testing:
> The code has been tested many many times, continuously while maintaining
> it. It has also served as the basis for RPMs and shipped to customers.
> We are running all sorts of tests of the hotspot/jtreg testsuite, in
> particular hotspot_gc_shenandoah, CTW tests, the regular tier* tests,
> several popular benchmarks (specjvm, specjbb on a regular basis), on a
> nightly basis.
>
> Please let me know what you think.
>
> Thanks,
> Roman
>
>
>
>
>
>
>
More information about the jdk-updates-dev
mailing list