[14] RFR 8228720: Shenandoah: Implementation of concurrent class unloading

Roman Kennke rkennke at redhat.com
Wed Nov 27 16:15:05 UTC 2019

Hi Zhengyu,

this is great work!

I looked over the changeset and couldn't find anything to complain
about. Thumbs up!


> 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 hotspot-gc-dev mailing list