Shenandoah and aarch64

Andrew Haley aph at redhat.com
Fri Jul 12 13:28:20 UTC 2019


On 7/12/19 11:29 AM, Aleksey Shipilev wrote:
> 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.

Absolutely. Given that we already have a merged tree, it should be
fairly straightforward to port the whole thing as a single piece.

> 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.

Yes.

> 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.

It needs maximum exposure. Let's discuss it here.

-- 
Andrew Haley  (he/him)
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
https://keybase.io/andrewhaley
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671


More information about the jdk8u-dev mailing list