comparison src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp @ 20302:3bf2fc51186b

8048085: Aborting marking just before remark results in useless additional clearing of the next mark bitmap Summary: Skip clearing the next bitmap if we just recently aborted since the full GC already clears this bitmap. Reviewed-by: brutisso
author tschatzl
date Mon, 21 Jul 2014 09:59:46 +0200
parents 581e70386ec9
children
comparison
equal deleted inserted replaced
20301:4baf9bb2376c 20302:3bf2fc51186b
273 } 273 }
274 } 274 }
275 275
276 // We now want to allow clearing of the marking bitmap to be 276 // We now want to allow clearing of the marking bitmap to be
277 // suspended by a collection pause. 277 // suspended by a collection pause.
278 { 278 // We may have aborted just before the remark. Do not bother clearing the
279 // bitmap then, as it has been done during mark abort.
280 if (!cm()->has_aborted()) {
279 SuspendibleThreadSetJoiner sts; 281 SuspendibleThreadSetJoiner sts;
280 _cm->clearNextBitmap(); 282 _cm->clearNextBitmap();
283 } else {
284 assert(!G1VerifyBitmaps || _cm->nextMarkBitmapIsClear(), "Next mark bitmap must be clear");
281 } 285 }
282 } 286 }
283 287
284 // Update the number of full collections that have been 288 // Update the number of full collections that have been
285 // completed. This will also notify the FullGCCount_lock in case a 289 // completed. This will also notify the FullGCCount_lock in case a