RFR 8225483: Shenandoah: Enhance native access barrier
Aleksey Shipilev
shade at redhat.com
Mon Jun 10 08:32:18 UTC 2019
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.
*) 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 shenandoah-dev
mailing list