Shenandoah and aarch64

Aleksey Shipilev shade at redhat.com
Fri Jul 12 10:29:33 UTC 2019


On 7/11/19 6:31 PM, Hohensee, Paul wrote:
> We (Amazon) are interested in pushing both Shenandoah and the aarch64 port to jdk8u and would be 
> willing to do much/most of the work. I believe that both currently reside in 
> http://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah/ (correct me if not), so to me the 
> easiest approach would be to take both from there. I’d move Shenandoah first, since it
> presumably has hooks in platform dependent code which we’d have to work around if we did the
> aarch64 port first.

This would certainly simplify 8u maintenance for us (Shenandoah devs and Red Hat maintenance
people). There are several wrinkles to consider here:

 a) Shenandoah hooks up into AArch64 code quite hard, and separating the two would probably be
problematic. It would also temporarily give us _another_ Shenandoah tree to maintain, which would be
bad. I would rather consider merging the entirety of aarch64-port/jdk8u-shenandoah/ into jdk8u, and
sunsetting the aarch64-port repos immediately after that.

 b) Shenandoah GC interface in 8u is quite messy, because GC API work to isolate GCs better is done
in later releases. There are Shenandoah features in backporting queue that would make the exposure
in shared parts much more narrow: load-reference barriers would eliminate lots of barrier hooks and
compiler opto steps, and eliminating separate fwdptr slot would retract extensions to the allocation
path. We (Shenandoah devs) were planning to backport these to 8u after July CPU is out of the door.

 c) There are some minor changes accrued against upstream 8u over the course of multiple backports
and merges. We would need to comb through them and harmonize them against upstream. On the upside,
those changes are usually independent of Shenandoah and AArch64.

We have the autogenerated webrev of difference between jdk8u and aarch64-port/jdk8u-shenandoah here:
  https://builds.shipilev.net/patch-openjdk-jdk8-redhat/

I believe we can start combing through that webrev to get the feel how much work there is, and what
changes can be done to simplify the merge. aarch64-port-dev@ would probably be the venue to
coordinate/review this work.

-- 
Thanks,
-Aleksey



More information about the jdk8u-dev mailing list