RFR 8225582: Shenandoah: Enable concurrent evacuation of JNIHandles and CLDG roots
zgu at redhat.com
Wed Jun 12 00:50:14 UTC 2019
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.
hotspot_gc_shenandoah (fastdebug and release)
More information about the hotspot-gc-dev