From 837b758b5fd4b3bb32a68468018a96350be948bb Mon Sep 17 00:00:00 2001 From: "svenpanne@chromium.org" Date: Tue, 22 Jul 2014 07:19:46 +0000 Subject: [PATCH] Revert "Set the state of a swept page after being done with sweeping." This reverts commit r22514, it broke the GC stress builder. TBR=machenbach@chromium.org Review URL: https://codereview.chromium.org/405373003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22517 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/mark-compact.cc | 36 ++++++++++++++---------------------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/src/mark-compact.cc b/src/mark-compact.cc index 595d6ee..2e276d1 100644 --- a/src/mark-compact.cc +++ b/src/mark-compact.cc @@ -3267,6 +3267,12 @@ static int SweepPrecisely(PagedSpace* space, start_time = base::OS::TimeCurrentMillis(); } + if (parallelism == MarkCompactCollector::SWEEP_IN_PARALLEL) { + p->set_parallel_sweeping(MemoryChunk::SWEEPING_FINALIZE); + } else { + p->MarkSweptPrecisely(); + } + Address free_start = p->area_start(); ASSERT(reinterpret_cast(free_start) % (32 * kPointerSize) == 0); int offsets[16]; @@ -3340,14 +3346,6 @@ static int SweepPrecisely(PagedSpace* space, if (FLAG_print_cumulative_gc_stat) { space->heap()->AddSweepingTime(base::OS::TimeCurrentMillis() - start_time); } - - if (parallelism == MarkCompactCollector::SWEEP_IN_PARALLEL) { - // When concurrent sweeping is active, the page will be marked after - // sweeping by the main thread. - p->set_parallel_sweeping(MemoryChunk::SWEEPING_FINALIZE); - } else { - p->MarkSweptPrecisely(); - } return FreeList::GuaranteedAllocatable(static_cast(max_freed_bytes)); } @@ -4001,6 +3999,14 @@ int MarkCompactCollector::SweepConservatively(PagedSpace* space, (mode == MarkCompactCollector::SWEEP_ON_MAIN_THREAD && free_list == NULL)); + // When parallel sweeping is active, the page will be marked after + // sweeping by the main thread. + if (mode == MarkCompactCollector::SWEEP_IN_PARALLEL) { + p->set_parallel_sweeping(MemoryChunk::SWEEPING_FINALIZE); + } else { + p->MarkSweptConservatively(); + } + intptr_t freed_bytes = 0; intptr_t max_freed_bytes = 0; size_t size = 0; @@ -4021,13 +4027,6 @@ int MarkCompactCollector::SweepConservatively(PagedSpace* space, static_cast(size)); max_freed_bytes = Max(freed_bytes, max_freed_bytes); ASSERT_EQ(0, p->LiveBytes()); - if (mode == MarkCompactCollector::SWEEP_IN_PARALLEL) { - // When concurrent sweeping is active, the page will be marked after - // sweeping by the main thread. - p->set_parallel_sweeping(MemoryChunk::SWEEPING_FINALIZE); - } else { - p->MarkSweptConservatively(); - } return FreeList::GuaranteedAllocatable(static_cast(max_freed_bytes)); } @@ -4085,13 +4084,6 @@ int MarkCompactCollector::SweepConservatively(PagedSpace* space, } p->ResetLiveBytes(); - if (mode == MarkCompactCollector::SWEEP_IN_PARALLEL) { - // When concurrent sweeping is active, the page will be marked after - // sweeping by the main thread. - p->set_parallel_sweeping(MemoryChunk::SWEEPING_FINALIZE); - } else { - p->MarkSweptConservatively(); - } return FreeList::GuaranteedAllocatable(static_cast(max_freed_bytes)); } -- 2.7.4