RFR 8225582: Shenandoah: Enable concurrent evacuation of JNIHandles and CLDG roots

Zhengyu Gu zgu at redhat.com
Sat Jun 15 12:37:05 UTC 2019


Breaking out Suspendible workers changes to JDK-8225813 [1]

Updated webrev: http://cr.openjdk.java.net/~zgu/JDK-8225582/webrev.01/

Reran hotspot_gc_shenandoah tests (fastdebug and release)

Thanks,

-Zhengyu


[1] https://bugs.openjdk.java.net/browse/JDK-8225813



On 6/14/19 3:00 PM, Roman Kennke wrote:
> Maybe makes sense to also break out the suspendible workers part?
> 
> Roman
> 
> 
> Am 14. Juni 2019 20:22:52 MESZ schrieb Zhengyu Gu <zgu at redhat.com>:
> 
>     So, is this a review?
> 
>     Thanks,
> 
>     -Zhengyu
> 
>     On 6/14/19 10:25 AM, Roman Kennke wrote:
> 
>         In this case we're good.
>         Roman
> 
>         Am 14. Juni 2019 15:27:37 MESZ schrieb Zhengyu Gu <zgu at redhat.com>:
> 
>         Hi Roman,
> 
>         Could you please take a look (Roland's comments) or if the CR is
>         accurate?
> 
>         https://bugs.openjdk.java.net/browse/JDK-8225718
> 
>         Thanks,
> 
>         -Zhengyu
> 
>         On 6/12/19 3:11 PM, Roman Kennke wrote:
> 
>         IIRC (!) the IN_NATIVE barriers in C1 and C2 are applied to
>         getClass()
>         intrinsic, which loads and unwraps the Class object from an obj
>         via the
>         Klass*. If the Klass* -> mirror reference is part of the CLDG
>         roots (I
>         don't know if that is the case), then you're gonna need the C1
>         and C2
>         barriers for concurrent evacuation of CLDG roots, otherwise you
>         might
>         leak from-space oops (the Class objects) in the getClass()
>         intrinsics.
> 
> 
>         Roman
> 
>         Hi Roman,
> 
>         This patch does not deal with class unloading, it is still
>         done at final
>         mark pause. What it does, is to move evacuate/update refs in
>         CLDs from
>         SH::evacuate_and_update_roots() to concurrent phase, and at
>         this point,
>         they are strongly reachable.
> 
>         I will put this through more tests.
> 
>         Thanks,
> 
>         -Zhengyu
> 
> 
> 
>         On 6/12/19 1:44 PM, Roman Kennke wrote:
> 
>         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.
> 
>         Roman
> 
>         This is the last sub task of JDK-8225534 [1], 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
>         barrier.
> 
>         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/
> 
>         Test:
>             hotspot_gc_shenandoah (fastdebug and release)
> 
> 
>         [1] https://bugs.openjdk.java.net/browse/JDK-8225582
> 
>         Thanks,
> 
>         -Zhengyu
> 
> 
> 
> 
>         -- 
>         Diese Nachricht wurde von meinem Android-Gerät mit K-9 Mail
>         gesendet.
> 
> 
> -- 
> Diese Nachricht wurde von meinem Android-Gerät mit K-9 Mail gesendet.



More information about the hotspot-gc-dev mailing list