Commit 18236dcb authored by Michael Lippautz's avatar Michael Lippautz Committed by V8 LUCI CQ

heap: Fix compaction aborting all pages

In such a case, we must post-process all aborted pages. The early
bailout assumed that not pages are aborted before trying compaction.

Bug: chromium:1271229
Change-Id: I4c5998b9d1c7974f7d1d25a6729f42d5690a5759
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289171Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77987}
parent 19bbd0f7
......@@ -3606,16 +3606,16 @@ void MarkCompactCollector::EvacuatePagesInParallel() {
}
}
if (evacuation_items.empty()) return;
TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("v8.gc"),
"MarkCompactCollector::EvacuatePagesInParallel", "pages",
evacuation_items.size());
const size_t pages_count = evacuation_items.size();
const size_t wanted_num_tasks =
CreateAndExecuteEvacuationTasks<FullEvacuator>(
this, std::move(evacuation_items), nullptr);
size_t wanted_num_tasks = 0;
if (!evacuation_items.empty()) {
TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("v8.gc"),
"MarkCompactCollector::EvacuatePagesInParallel", "pages",
evacuation_items.size());
wanted_num_tasks = CreateAndExecuteEvacuationTasks<FullEvacuator>(
this, std::move(evacuation_items), nullptr);
}
// After evacuation there might still be swept pages that weren't
// added to one of the compaction space but still reside in the
......
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