RFR 8225582: Shenandoah: Enable concurrent evacuation of JNIHandles and CLDG roots
rkennke at redhat.com
Wed Jun 12 17:44:40 UTC 2019
I suspect you're gonna need the C1 and C2 IN_NATIVE barriers, esp. for
the CLDG roots. Should be relatively easy to wire up the LRB barriers
there (probably ask shade or roland). It will be more complex to do the
other parts and return NULL on unreachable objects, but this is not
needed yet. When we do, we should probably just make it call out to runtime.
> This is the last sub task of JDK-8225534 , that moves evacuation of
> JNIHandles and Class Loader Data into concurrent phase. This is the
> first step that moves some root processing into concurrent phase, and
> this step can be backported to the releases that don't support nmethod
> 1. Concurrent CLDG root evacuation can not run through safepoints, where
> there may also perform CLDG walk, e.g. heap iteration. So it requires
> suspendible workers always on, therefore, ShenandoahSuspendibleWorkers
> flag is removed, along with related test cases. There are many trivial
> changes just because of this flag.
> 2. A new concurrent phase "concurrent roots" is added to perform
> concurrent JNI and CLDG root evacuation. In Next step, it will also
> perform concurrent class unloading and nmethod cleanup.
> 3) This patch does not address Traversal GC.
> Bug: https://bugs.openjdk.java.net/browse/JDK-8225582
> Webrev: http://cr.openjdk.java.net/~zgu/JDK-8225582/webrev.00/
> hotspot_gc_shenandoah (fastdebug and release)
>  https://bugs.openjdk.java.net/browse/JDK-8225582
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 833 bytes
Desc: OpenPGP digital signature
More information about the hotspot-gc-dev