Commit 70f428bd authored by Michael Lippautz's avatar Michael Lippautz Committed by Commit Bot

[heap] MinorMC: Avoid clearing mark bits for promoted pages

We need to keep the new space mark bits as they are still required for
pointer updating.

TBR=hpayer@chromium.org
NOTRY=true

Bug: chromium:651354
Change-Id: Idc85f08a3b6525dd1ca932585f5e696a22b12808
Reviewed-on: https://chromium-review.googlesource.com/522609Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45690}
parent 9b504257
...@@ -3764,9 +3764,9 @@ bool YoungGenerationEvacuator::RawEvacuatePage(Page* page, ...@@ -3764,9 +3764,9 @@ bool YoungGenerationEvacuator::RawEvacuatePage(Page* page,
ZAP_FREE_SPACE); ZAP_FREE_SPACE);
} else if (heap()->incremental_marking()->IsMarking()) { } else if (heap()->incremental_marking()->IsMarking()) {
// When incremental marking is on, we need to clear the mark bits of // When incremental marking is on, we need to clear the mark bits of
// the full collector. Make the page completely iterable and clear also // the full collector. We cannot yet discard the young generation mark
// the young generation mark bits in the case. // bits as they are still relevant for pointers updating.
collector_->MakeIterable(page, MarkingTreatmentMode::CLEAR, collector_->MakeIterable(page, MarkingTreatmentMode::KEEP,
IGNORE_FREE_SPACE); IGNORE_FREE_SPACE);
} }
break; break;
...@@ -3784,9 +3784,9 @@ bool YoungGenerationEvacuator::RawEvacuatePage(Page* page, ...@@ -3784,9 +3784,9 @@ bool YoungGenerationEvacuator::RawEvacuatePage(Page* page,
ZAP_FREE_SPACE); ZAP_FREE_SPACE);
} else if (heap()->incremental_marking()->IsMarking()) { } else if (heap()->incremental_marking()->IsMarking()) {
// When incremental marking is on, we need to clear the mark bits of // When incremental marking is on, we need to clear the mark bits of
// the full collector. Make the page completely iterable and clear also // the full collector. We cannot yet discard the young generation mark
// the young generation mark bits in the case. // bits as they are still relevant for pointers updating.
collector_->MakeIterable(page, MarkingTreatmentMode::CLEAR, collector_->MakeIterable(page, MarkingTreatmentMode::KEEP,
IGNORE_FREE_SPACE); IGNORE_FREE_SPACE);
} }
break; break;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment