Mercurial > hg > truffle
diff 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 |
line wrap: on
line diff
--- a/src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp Mon Jul 21 09:59:37 2014 +0200 +++ b/src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp Mon Jul 21 09:59:46 2014 +0200 @@ -275,9 +275,13 @@ // We now want to allow clearing of the marking bitmap to be // suspended by a collection pause. - { + // We may have aborted just before the remark. Do not bother clearing the + // bitmap then, as it has been done during mark abort. + if (!cm()->has_aborted()) { SuspendibleThreadSetJoiner sts; _cm->clearNextBitmap(); + } else { + assert(!G1VerifyBitmaps || _cm->nextMarkBitmapIsClear(), "Next mark bitmap must be clear"); } }