--- a/src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp Mon Apr 08 13:33:28 2019 -0400
+++ b/src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp Mon Apr 08 19:43:04 2019 +0200
@@ -628,6 +628,10 @@
enabled = true;
expected = ShenandoahHeap::HAS_FORWARDED;
break;
+ case _verify_gcstate_evacuation:
+ enabled = true;
+ expected = ShenandoahHeap::HAS_FORWARDED | ShenandoahHeap::EVACUATION;
+ break;
case _verify_gcstate_stable:
enabled = true;
expected = ShenandoahHeap::STABLE;
@@ -808,6 +812,18 @@
);
}
+void ShenandoahVerifier::verify_during_evacuation() {
+ verify_at_safepoint(
+ "During Evacuation",
+ _verify_forwarded_allow, // some forwarded references are allowed
+ _verify_marked_disable, // walk only roots
+ _verify_cset_disable, // some cset references are not forwarded yet
+ _verify_liveness_disable, // liveness data might be already stale after pre-evacs
+ _verify_regions_disable, // trash regions not yet recycled
+ _verify_gcstate_evacuation // evacuation is in progress
+ );
+}
+
void ShenandoahVerifier::verify_after_evacuation() {
verify_at_safepoint(
"After Evacuation",