Commit aa132433 authored by hpayer@chromium.org's avatar hpayer@chromium.org

Set the state of a swept page after being done with sweeping.

BUG=
R=machenbach@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22532 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 14e88a5b
......@@ -3267,12 +3267,6 @@ 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<intptr_t>(free_start) % (32 * kPointerSize) == 0);
int offsets[16];
......@@ -3346,6 +3340,14 @@ 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<int>(max_freed_bytes));
}
......@@ -3999,14 +4001,6 @@ 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;
......@@ -4027,6 +4021,13 @@ int MarkCompactCollector::SweepConservatively(PagedSpace* space,
static_cast<int>(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<int>(max_freed_bytes));
}
......@@ -4084,6 +4085,13 @@ 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<int>(max_freed_bytes));
}
......
......@@ -147,8 +147,16 @@
'elements-transition-hoisting': [PASS, FAIL],
'getters-on-elements': [PASS, FAIL],
# Tests taking too long
'regress/regress-1122': [PASS, TIMEOUT],
'regress/regress-331444': [PASS, TIMEOUT],
'debug-stepout-scope-part8': [SKIP],
'mirror-object': [SKIP],
'packed-elements': [SKIP],
'regress/regress-1122': [SKIP],
'regress/regress-331444': [SKIP],
'regress/regress-353551': [SKIP],
'regress/regress-crbug-119926': [SKIP],
'regress/short-circuit': [SKIP],
'unicode-test': [SKIP],
'whitespaces': [SKIP]
}], # 'gc_stress == True'
##############################################################################
......
......@@ -48,3 +48,11 @@
'dfg-int-overflow-in-loop': [SKIP],
}], # 'arch == arm64 and simulator_run == True'
]
##############################################################################
['gc_stress == True', {
# Tests taking too long
'fast/js/excessive-comma-usage': [SKIP]
}], # 'gc_stress == True'
##############################################################################
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