Skip to content

Commit

Permalink
Revert of Allow compaction when incremental marking is on. (patchset n…
Browse files Browse the repository at this point in the history
…wjs#1 id:1 of https://codereview.chromium.org/1014263002/)

Reason for revert:
It seems to cause crbug/469146.

Original issue's description:
> Allow compaction when incremental marking is on.
>
> BUG=chromium:450824
> LOG=NO
>
> Committed: https://crrev.com/92f96e4e9a527fcb085b68f81ee14b26acdd4719
> Cr-Commit-Position: refs/heads/master@{#27267}

TBR=hpayer@chromium.org,ulan@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:450824

Review URL: https://codereview.chromium.org/1026813002

Cr-Commit-Position: refs/heads/master@{#27345}
  • Loading branch information
isheludko authored and Commit bot committed Mar 20, 2015
1 parent bef80fc commit 371ae8c
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 8 deletions.
14 changes: 8 additions & 6 deletions src/heap/incremental-marking.cc
Original file line number Diff line number Diff line change
Expand Up @@ -468,7 +468,7 @@ static void PatchIncrementalMarkingRecordWriteStubs(
}


void IncrementalMarking::Start() {
void IncrementalMarking::Start(CompactionFlag flag) {
if (FLAG_trace_incremental_marking) {
PrintF("[IncrementalMarking] Start\n");
}
Expand All @@ -483,7 +483,7 @@ void IncrementalMarking::Start() {
was_activated_ = true;

if (!heap_->mark_compact_collector()->sweeping_in_progress()) {
StartMarking();
StartMarking(flag);
} else {
if (FLAG_trace_incremental_marking) {
PrintF("[IncrementalMarking] Start sweeping.\n");
Expand All @@ -495,12 +495,12 @@ void IncrementalMarking::Start() {
}


void IncrementalMarking::StartMarking() {
void IncrementalMarking::StartMarking(CompactionFlag flag) {
if (FLAG_trace_incremental_marking) {
PrintF("[IncrementalMarking] Start marking\n");
}

is_compacting_ = !FLAG_never_compact &&
is_compacting_ = !FLAG_never_compact && (flag == ALLOW_COMPACTION) &&
heap_->mark_compact_collector()->StartCompaction(
MarkCompactCollector::INCREMENTAL_COMPACTION);

Expand Down Expand Up @@ -834,7 +834,9 @@ void IncrementalMarking::Epilogue() {

void IncrementalMarking::OldSpaceStep(intptr_t allocated) {
if (IsStopped() && ShouldActivate()) {
Start();
// TODO(hpayer): Let's play safe for now, but compaction should be
// in principle possible.
Start(PREVENT_COMPACTION);
} else {
Step(allocated * kFastMarking / kInitialMarkingSpeed, GC_VIA_STACK_GUARD);
}
Expand Down Expand Up @@ -963,7 +965,7 @@ intptr_t IncrementalMarking::Step(intptr_t allocated_bytes,
}
if (!heap_->mark_compact_collector()->sweeping_in_progress()) {
bytes_scanned_ = 0;
StartMarking();
StartMarking(PREVENT_COMPACTION);
}
} else if (state_ == MARKING) {
bytes_processed = ProcessMarkingDeque(bytes_to_process);
Expand Down
6 changes: 4 additions & 2 deletions src/heap/incremental-marking.h
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,9 @@ class IncrementalMarking {

bool WasActivated();

void Start();
enum CompactionFlag { ALLOW_COMPACTION, PREVENT_COMPACTION };

void Start(CompactionFlag flag = ALLOW_COMPACTION);

void Stop();

Expand Down Expand Up @@ -206,7 +208,7 @@ class IncrementalMarking {

void ResetStepCounters();

void StartMarking();
void StartMarking(CompactionFlag flag);

void ActivateIncrementalWriteBarrier(PagedSpace* space);
static void ActivateIncrementalWriteBarrier(NewSpace* space);
Expand Down

0 comments on commit 371ae8c

Please sign in to comment.