Mercurial > hg > truffle
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; |