RFR 8225582: Shenandoah: Enable concurrent evacuation of JNIHandles and CLDG roots
Roman Kennke
rkennke at redhat.com
Sat Jun 15 20:08:42 UTC 2019
Looks ok to me.
Thanks,
Roman
> 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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20190615/43f87235/signature.asc>
More information about the hotspot-gc-dev
mailing list