RFR 8225483: Shenandoah: Enhance native access barrier

Zhengyu Gu zgu at redhat.com
Tue Jun 11 12:18:33 UTC 2019



On 6/11/19 6:39 AM, Roman Kennke wrote:
> It looks to me like it adds more work, while not reaping the benefit of 
> it, specifically the ability to clean some roots concurrently. I assume 
> this would come in follow-up?
> 
Yes, this is a prerequisite of JDK-8225534 
(https://bugs.openjdk.java.net/browse/JDK-8225534)

Thanks,

-Zhengyu

> Roman
> 
> 
> Am 11. Juni 2019 01:14:48 MESZ schrieb Zhengyu Gu <zgu at redhat.com>:
> 
> 
> 
>     On 6/10/19 4:32 AM, Aleksey Shipilev wrote:
> 
>         On 6/10/19 2:06 AM, Zhengyu Gu wrote:
> 
>             Please review this enhancement of native access barrier, in
>             preparation for concurrent root processing.
> 
>             Bug: https://bugs.openjdk.java.net/browse/JDK-8225483
>             Webrev: http://cr.openjdk.java.net/~zgu/JDK-8225483/webrev.00/
> 
> 
>         *) It looks to me the webrev itself and the patch in it
>         disagree. For example, webrev says the
>         entire oop_store_not_in_heap is #ifdef ASSERT-ed, but the patch
>         has the ASSERT block internally. The
>         patch also has the unrelated change in shenandoahForwarding.hpp.
> 
> 
>     Sorry, it is a broken webrev.
> 
>     Updated:http://cr.openjdk.java.net/~zgu/JDK-8225483/webrev.01/
> 
>     Reran hotspot_gc_shenandoah (fastdebug and release)
> 
>     Thanks,
> 
>     -Zhengyu
> 
> 
>         *) Why change Raw::oop_store_in_heap to Raw::oop_store in
>         ShenandoahBarrierSet::oop_store_in_heap?
> 
>         *) You can write this block:
> 
>         #ifdef ASSERT
>         ShenandoahHeap* const heap = ShenandoahHeap::heap();
>         shenandoah_assert_marked_if(value,
>         heap->is_gc_in_progress_mask(ShenandoahHeap::EVACUATION));
>         #endif
> 
>         as:
> 
>         shenandoah_assert_marked_if(value,
>         ShenandoahHeap::heap()->is_evacuation_in_progress());
> 
> 
>         *) Also, this block:
> 
>         ShenandoahHeap* const heap = ShenandoahHeap::heap();
>         if (!CompressedOops::is_null(value) &&
>         heap->is_gc_in_progress_mask(ShenandoahHeap::EVACUATION)) {
> 
>         as:
> 
>         if (!CompressedOops::is_null(value) &&
>         ShenandoahHeap::heap()->is_evacuation_in_progress()) {
> 
> 
> 
>         -Aleksey
> 
> 
> -- 
> Diese Nachricht wurde von meinem Android-Gerät mit K-9 Mail gesendet.



More information about the hotspot-gc-dev mailing list