1069 }
1070 }
1071
1072 log_debug(gc)("Safepoint verification finished accumulation of liveness data");
1073 log_info(gc)("Verify %s, Level %zd (%zu reachable, %zu marked)",
1074 label, ShenandoahVerifyLevel, count_reachable, count_marked);
1075
1076 FREE_C_HEAP_ARRAY(ShenandoahLivenessData, ld);
1077 }
1078
1079 void ShenandoahVerifier::verify_generic(ShenandoahGeneration* generation, VerifyOption vo) {
1080 verify_at_safepoint(
1081 generation,
1082 "Generic Verification",
1083 _verify_remembered_disable, // do not verify remembered set
1084 _verify_forwarded_allow, // conservatively allow forwarded
1085 _verify_marked_disable, // do not verify marked: lots ot time wasted checking dead allocations
1086 _verify_cset_disable, // cset may be inconsistent
1087 _verify_liveness_disable, // no reliable liveness data
1088 _verify_regions_disable, // no reliable region data
1089 _verify_size_exact, // expect generation and heap sizes to match exactly
1090 _verify_gcstate_disable // no data about gcstate
1091 );
1092 }
1093
1094 void ShenandoahVerifier::verify_before_concmark(ShenandoahGeneration* generation) {
1095 VerifyRememberedSet verify_remembered_set = _verify_remembered_before_marking;
1096 if (_heap->mode()->is_generational() &&
1097 !_heap->old_generation()->is_mark_complete()) {
1098 // Before marking in generational mode, remembered set can't be verified w/o complete old marking.
1099 verify_remembered_set = _verify_remembered_disable;
1100 }
1101 verify_at_safepoint(
1102 generation,
1103 "Before Mark",
1104 verify_remembered_set,
1105 // verify read-only remembered set from bottom() to top()
1106 _verify_forwarded_none, // UR should have fixed up
1107 _verify_marked_disable, // do not verify marked: lots ot time wasted checking dead allocations
1108 _verify_cset_none, // UR should have fixed this
1109 _verify_liveness_disable, // no reliable liveness data
|
1069 }
1070 }
1071
1072 log_debug(gc)("Safepoint verification finished accumulation of liveness data");
1073 log_info(gc)("Verify %s, Level %zd (%zu reachable, %zu marked)",
1074 label, ShenandoahVerifyLevel, count_reachable, count_marked);
1075
1076 FREE_C_HEAP_ARRAY(ShenandoahLivenessData, ld);
1077 }
1078
1079 void ShenandoahVerifier::verify_generic(ShenandoahGeneration* generation, VerifyOption vo) {
1080 verify_at_safepoint(
1081 generation,
1082 "Generic Verification",
1083 _verify_remembered_disable, // do not verify remembered set
1084 _verify_forwarded_allow, // conservatively allow forwarded
1085 _verify_marked_disable, // do not verify marked: lots ot time wasted checking dead allocations
1086 _verify_cset_disable, // cset may be inconsistent
1087 _verify_liveness_disable, // no reliable liveness data
1088 _verify_regions_disable, // no reliable region data
1089 _verify_size_disable, // no reliable sizing data
1090 _verify_gcstate_disable // no data about gcstate
1091 );
1092 }
1093
1094 void ShenandoahVerifier::verify_before_concmark(ShenandoahGeneration* generation) {
1095 VerifyRememberedSet verify_remembered_set = _verify_remembered_before_marking;
1096 if (_heap->mode()->is_generational() &&
1097 !_heap->old_generation()->is_mark_complete()) {
1098 // Before marking in generational mode, remembered set can't be verified w/o complete old marking.
1099 verify_remembered_set = _verify_remembered_disable;
1100 }
1101 verify_at_safepoint(
1102 generation,
1103 "Before Mark",
1104 verify_remembered_set,
1105 // verify read-only remembered set from bottom() to top()
1106 _verify_forwarded_none, // UR should have fixed up
1107 _verify_marked_disable, // do not verify marked: lots ot time wasted checking dead allocations
1108 _verify_cset_none, // UR should have fixed this
1109 _verify_liveness_disable, // no reliable liveness data
|