8048085: Aborting marking just before remark results in useless additional clearing of the next mark bitmap

Skip clearing the next bitmap if we just recently aborted since the full GC already clears this bitmap.

Reviewed-by: brutisso
This commit is contained in:
Thomas Schatzl 2014-07-21 09:59:46 +02:00
parent 1ad5cdb4a4
commit 2e37a94622
3 changed files with 14 additions and 2 deletions

View file

@ -277,9 +277,13 @@ void ConcurrentMarkThread::run() {
// 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");
}
}