1.1 --- a/src/share/vm/gc_implementation/g1/concurrentMark.cpp Wed Aug 06 08:47:40 2014 +0200 1.2 +++ b/src/share/vm/gc_implementation/g1/concurrentMark.cpp Tue Apr 29 09:33:20 2014 +0200 1.3 @@ -1306,6 +1306,7 @@ 1.4 Universe::verify(VerifyOption_G1UsePrevMarking, 1.5 " VerifyDuringGC:(before)"); 1.6 } 1.7 + g1h->check_bitmaps("Remark Start"); 1.8 1.9 G1CollectorPolicy* g1p = g1h->g1_policy(); 1.10 g1p->record_concurrent_mark_remark_start(); 1.11 @@ -1354,6 +1355,7 @@ 1.12 Universe::verify(VerifyOption_G1UseNextMarking, 1.13 " VerifyDuringGC:(after)"); 1.14 } 1.15 + g1h->check_bitmaps("Remark End"); 1.16 assert(!restart_for_overflow(), "sanity"); 1.17 // Completely reset the marking state since marking completed 1.18 set_non_marking_state(); 1.19 @@ -2003,6 +2005,7 @@ 1.20 Universe::verify(VerifyOption_G1UsePrevMarking, 1.21 " VerifyDuringGC:(before)"); 1.22 } 1.23 + g1h->check_bitmaps("Cleanup Start"); 1.24 1.25 G1CollectorPolicy* g1p = G1CollectedHeap::heap()->g1_policy(); 1.26 g1p->record_concurrent_mark_cleanup_start(); 1.27 @@ -2149,6 +2152,7 @@ 1.28 Universe::verify(VerifyOption_G1UsePrevMarking, 1.29 " VerifyDuringGC:(after)"); 1.30 } 1.31 + g1h->check_bitmaps("Cleanup End"); 1.32 1.33 g1h->verify_region_sets_optional(); 1.34 1.35 @@ -3360,6 +3364,11 @@ 1.36 void ConcurrentMark::abort() { 1.37 // Clear all marks to force marking thread to do nothing 1.38 _nextMarkBitMap->clearAll(); 1.39 + 1.40 + // Note we cannot clear the previous marking bitmap here 1.41 + // since VerifyDuringGC verifies the objects marked during 1.42 + // a full GC against the previous bitmap. 1.43 + 1.44 // Clear the liveness counting data 1.45 clear_all_count_data(); 1.46 // Empty mark stack