comparison src/share/vm/gc_implementation/g1/concurrentMark.cpp @ 811:830ca2573896

6850846: G1: extend G1 marking verification Summary: extend G1 marking verification to use either the "prev" or "next" marking information, as appropriate. Reviewed-by: johnc, ysr
author tonyp
date Fri, 12 Jun 2009 16:20:16 -0400
parents 20c6f43950b5
children 30b9b25b9cc1
comparison
equal deleted inserted replaced
809:6e2afda171db 811:830ca2573896
1155 if (G1TraceMarkStackOverflow) 1155 if (G1TraceMarkStackOverflow)
1156 gclog_or_tty->print_cr("\nRemark led to restart for overflow."); 1156 gclog_or_tty->print_cr("\nRemark led to restart for overflow.");
1157 } else { 1157 } else {
1158 // We're done with marking. 1158 // We're done with marking.
1159 JavaThread::satb_mark_queue_set().set_active_all_threads(false); 1159 JavaThread::satb_mark_queue_set().set_active_all_threads(false);
1160
1161 if (VerifyDuringGC) {
1162 g1h->prepare_for_verify();
1163 g1h->verify(/* allow_dirty */ true,
1164 /* silent */ false,
1165 /* use_prev_marking */ false);
1166 }
1160 } 1167 }
1161 1168
1162 #if VERIFY_OBJS_PROCESSED 1169 #if VERIFY_OBJS_PROCESSED
1163 _scan_obj_cl.objs_processed = 0; 1170 _scan_obj_cl.objs_processed = 0;
1164 ThreadLocalObjQueue::objs_enqueued = 0; 1171 ThreadLocalObjQueue::objs_enqueued = 0;
1745 1752
1746 // We need to make this be a "collection" so any collection pause that 1753 // We need to make this be a "collection" so any collection pause that
1747 // races with it goes around and waits for completeCleanup to finish. 1754 // races with it goes around and waits for completeCleanup to finish.
1748 g1h->increment_total_collections(); 1755 g1h->increment_total_collections();
1749 1756
1750 #ifndef PRODUCT
1751 if (VerifyDuringGC) { 1757 if (VerifyDuringGC) {
1752 G1CollectedHeap::heap()->prepare_for_verify(); 1758 g1h->prepare_for_verify();
1753 G1CollectedHeap::heap()->verify(true,false); 1759 g1h->verify(/* allow_dirty */ true,
1754 } 1760 /* silent */ false,
1755 #endif 1761 /* use_prev_marking */ true);
1762 }
1756 } 1763 }
1757 1764
1758 void ConcurrentMark::completeCleanup() { 1765 void ConcurrentMark::completeCleanup() {
1759 // A full collection intervened. 1766 // A full collection intervened.
1760 if (has_aborted()) return; 1767 if (has_aborted()) return;