[14] RFR 8228720: Shenandoah: Implementation of concurrent class unloading
Zhengyu Gu
zgu at redhat.com
Wed Nov 27 14:17:26 UTC 2019
Shenandoah concurrent class unloading has been baked in shenandoah/jdk
repo for quite some time, it is ready for integration into 14.
The implementation is similar to ZGC's with added complexity, due to
additional GC modes other than concurrent mode. E.g. degenerated GC and
full GC.
This patch only contains Shenandoah specific changes, the shared part
has been upstreamed under JDK-8230765 to support x86_32 platforms.
A few key points:
1) Available on x86_64 and x86_32 platforms with Shenandoah concurrent
GC (not yet with traversal GC)
2) Concurrent class unloading is enabled by default with Shenandoah
concurrent GC for every GC cycle. Class unloading can be disabled with
-XX:-ClassUnloading/-XX:-ClassUnloadingWithConcurrentMark and frequency
can be changed via experimental flag -XX:ShenandoahRefProcFrequency=n
3) For degenerated GC and full GC, class unloading falls back to STW.
Bug: https://bugs.openjdk.java.net/browse/JDK-8228720
Webrev: http://cr.openjdk.java.net/~zgu/JDK-8228720/webrev.02
Test:
hotspot_gc_shenandoah (fastdebug and release) with x86_64 and x86_32
JVM on Linux.
Thanks,
-Zhengyu
More information about the shenandoah-dev
mailing list