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