From 700c25f5b45e8a228d07c57dcf925e93d494af23 Mon Sep 17 00:00:00 2001 From: Aleksey Shipilev Date: Fri, 5 Jan 2024 17:04:32 +0000 Subject: [PATCH] 8322954: Shenandoah: Convert evac-update closures asserts to rich asserts Reviewed-by: wkemper, kdnilsen, ysr --- .../share/gc/shenandoah/shenandoahBarrierSet.inline.hpp | 2 +- .../share/gc/shenandoah/shenandoahBarrierSetClone.inline.hpp | 2 +- src/hotspot/share/gc/shenandoah/shenandoahConcurrentGC.cpp | 4 +--- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.inline.hpp b/src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.inline.hpp index b8da50dd6e1..bfb69c38c33 100644 --- a/src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.inline.hpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.inline.hpp @@ -357,7 +357,7 @@ void ShenandoahBarrierSet::arraycopy_work(T* src, size_t count) { if (EVAC && obj == fwd) { fwd = _heap->evacuate_object(obj, thread); } - assert(obj != fwd || _heap->cancelled_gc(), "must be forwarded"); + shenandoah_assert_forwarded_except(elem_ptr, obj, _heap->cancelled_gc()); ShenandoahHeap::atomic_update_oop(fwd, elem_ptr, o); obj = fwd; } diff --git a/src/hotspot/share/gc/shenandoah/shenandoahBarrierSetClone.inline.hpp b/src/hotspot/share/gc/shenandoah/shenandoahBarrierSetClone.inline.hpp index b548073be33..13371f5e194 100644 --- a/src/hotspot/share/gc/shenandoah/shenandoahBarrierSetClone.inline.hpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahBarrierSetClone.inline.hpp @@ -53,7 +53,7 @@ private: if (EVAC && obj == fwd) { fwd = _heap->evacuate_object(obj, _thread); } - assert(obj != fwd || _heap->cancelled_gc(), "must be forwarded"); + shenandoah_assert_forwarded_except(p, obj, _heap->cancelled_gc()); ShenandoahHeap::atomic_update_oop(fwd, p, o); obj = fwd; } diff --git a/src/hotspot/share/gc/shenandoah/shenandoahConcurrentGC.cpp b/src/hotspot/share/gc/shenandoah/shenandoahConcurrentGC.cpp index 7564af5f6b7..c7284fbcead 100644 --- a/src/hotspot/share/gc/shenandoah/shenandoahConcurrentGC.cpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahConcurrentGC.cpp @@ -705,10 +705,8 @@ void ShenandoahEvacUpdateCleanupOopStorageRootsClosure::do_oop(oop* p) { if (resolved == obj) { resolved = _heap->evacuate_object(obj, _thread); } + shenandoah_assert_not_in_cset_except(p, resolved, _heap->cancelled_gc()); ShenandoahHeap::atomic_update_oop(resolved, p, obj); - assert(_heap->cancelled_gc() || - _mark_context->is_marked(resolved) && !_heap->in_collection_set(resolved), - "Sanity"); } } }