RFR: Integration from jdk/jdk

Roman Kennke rkennke at redhat.com
Mon Apr 9 22:29:23 UTC 2018


I've prepared integration from upstream jdk/jdk repository. The complete
list of changesets is here:

http://cr.openjdk.java.net/~rkennke/merge-2018-04-09/changesets

Of particular interest for Shenandoah are:
- 8198445: Access API for primitive/native arraycopy
- 8199620: Support for JNI object pinning
- 8199739: Use HeapAccess when loading oops from static fields in
javaClasses.cpp
- 8197844: JVMTI GetLoadedClasses should use the Access API
- 8198949: Modularize arraycopy stub routine GC barriers

All of these reduce our upstream exposure. More is in the pipeline (but
no yet in jdk/jdk at the time of merge).

Thanks Roland for helping with some C2 merge conflicts.

The new upstream base changeset is:
changeset:   49770:4f6887eade94
user:        cushon
date:        Thu Apr 05 14:39:04 2018 -0700
summary:     8201194: Handle local variable declarations in lambda
deduplication

Note that this will initially break aarch64, because it requires some
shuffling around of Shenandoah barriers (see
src/hotspot/cpu/x86/gc/shenandoah). I will do that as soon as I pushed
this merge. It would be cumbersome to transfer the whole merge over to
an aarch64 box beforehand.

Testing (some pending overnight):
- build all of slowdebug/fastdebug/release
- run specjvm with fastdebug and +ShenandoahVerify and
+CheckUnhandledOopsdOops to catch potential missing == barriers
- run hotspot_gc_shenandoah fastdebug+release

Full webrev:
http://cr.openjdk.java.net/~rkennke/merge-2018-04-09/webrev.00/

Ok to push (as soon as testing completes)?

Thanks, Roman



More information about the shenandoah-dev mailing list