RFR 8225483: Shenandoah: Enhance native access barrier

Zhengyu Gu zgu at redhat.com
Mon Jun 10 23:14:48 UTC 2019



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
> 



More information about the hotspot-gc-dev mailing list