Commit 68a72399 authored by Michael Achenbach's avatar Michael Achenbach Committed by Commit Bot

Revert "[heap] Move pointers updating to ItemParallelJob"

This reverts commit 81d3427b.

Reason for revert: Several gc related failures, e.g.:
https://build.chromium.org/p/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13488

Original change's description:
> [heap] Move pointers updating to ItemParallelJob
> 
> Furthermore avoid lock-step between pointer updating phases as they
> should execute in parallel without synchronization restrictions.
> 
> Bug: chromium:726040
> Change-Id: I26ce0d1f2a4637ff5610cae556113e3d736788e2
> Reviewed-on: https://chromium-review.googlesource.com/518103
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Reviewed-by: Hannes Payer <hpayer@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#45574}

NOPRESUBMIT=true
NOTRY=true
NOTREECHECKS=true

TBR=ulan@chromium.org,hpayer@chromium.org,mlippautz@chromium.org
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:726040

Change-Id: I60860aef390605d07bc520141cab9d5be9b712b3
Reviewed-on: https://chromium-review.googlesource.com/518106
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45575}
parent 81d3427b
...@@ -538,8 +538,10 @@ void GCTracer::PrintNVP() const { ...@@ -538,8 +538,10 @@ void GCTracer::PrintNVP() const {
"evacuate=%.2f " "evacuate=%.2f "
"evacuate.copy=%.2f " "evacuate.copy=%.2f "
"evacuate.update_pointers=%.2f " "evacuate.update_pointers=%.2f "
"evacuate.update_pointers.to_new_roots=%.2f " "evacuate.update_pointers.to_new=%.2f "
"evacuate.update_pointers.slots=%.2f " "evacuate.update_pointers.to_new.tospace=%.2f "
"evacuate.update_pointers.to_new.roots=%.2f "
"evacuate.update_pointers.to_new.old=%.2f "
"update_marking_deque=%.2f " "update_marking_deque=%.2f "
"reset_liveness=%.2f\n", "reset_liveness=%.2f\n",
duration, spent_in_mutator, "mmc", current_.reduce_memory, duration, spent_in_mutator, "mmc", current_.reduce_memory,
...@@ -556,9 +558,12 @@ void GCTracer::PrintNVP() const { ...@@ -556,9 +558,12 @@ void GCTracer::PrintNVP() const {
current_.scopes[Scope::MINOR_MC_EVACUATE], current_.scopes[Scope::MINOR_MC_EVACUATE],
current_.scopes[Scope::MINOR_MC_EVACUATE_COPY], current_.scopes[Scope::MINOR_MC_EVACUATE_COPY],
current_.scopes[Scope::MINOR_MC_EVACUATE_UPDATE_POINTERS], current_.scopes[Scope::MINOR_MC_EVACUATE_UPDATE_POINTERS],
current_.scopes[Scope::MINOR_MC_EVACUATE_UPDATE_POINTERS_TO_NEW],
current_
.scopes[Scope::MINOR_MC_EVACUATE_UPDATE_POINTERS_TO_NEW_TOSPACE],
current_ current_
.scopes[Scope::MINOR_MC_EVACUATE_UPDATE_POINTERS_TO_NEW_ROOTS], .scopes[Scope::MINOR_MC_EVACUATE_UPDATE_POINTERS_TO_NEW_ROOTS],
current_.scopes[Scope::MINOR_MC_EVACUATE_UPDATE_POINTERS_SLOTS], current_.scopes[Scope::MINOR_MC_EVACUATE_UPDATE_POINTERS_TO_NEW_OLD],
current_.scopes[Scope::MINOR_MC_MARKING_DEQUE], current_.scopes[Scope::MINOR_MC_MARKING_DEQUE],
current_.scopes[Scope::MINOR_MC_RESET_LIVENESS]); current_.scopes[Scope::MINOR_MC_RESET_LIVENESS]);
break; break;
...@@ -593,8 +598,8 @@ void GCTracer::PrintNVP() const { ...@@ -593,8 +598,8 @@ void GCTracer::PrintNVP() const {
"evacuate.epilogue=%.1f " "evacuate.epilogue=%.1f "
"evacuate.rebalance=%.1f " "evacuate.rebalance=%.1f "
"evacuate.update_pointers=%.1f " "evacuate.update_pointers=%.1f "
"evacuate.update_pointers.to_new_roots=%.1f " "evacuate.update_pointers.to_evacuated=%.1f "
"evacuate.update_pointers.slots=%.1f " "evacuate.update_pointers.to_new=%.1f "
"evacuate.update_pointers.weak=%.1f " "evacuate.update_pointers.weak=%.1f "
"finish=%.1f " "finish=%.1f "
"mark=%.1f " "mark=%.1f "
...@@ -677,8 +682,8 @@ void GCTracer::PrintNVP() const { ...@@ -677,8 +682,8 @@ void GCTracer::PrintNVP() const {
current_.scopes[Scope::MC_EVACUATE_EPILOGUE], current_.scopes[Scope::MC_EVACUATE_EPILOGUE],
current_.scopes[Scope::MC_EVACUATE_REBALANCE], current_.scopes[Scope::MC_EVACUATE_REBALANCE],
current_.scopes[Scope::MC_EVACUATE_UPDATE_POINTERS], current_.scopes[Scope::MC_EVACUATE_UPDATE_POINTERS],
current_.scopes[Scope::MC_EVACUATE_UPDATE_POINTERS_TO_NEW_ROOTS], current_.scopes[Scope::MC_EVACUATE_UPDATE_POINTERS_TO_EVACUATED],
current_.scopes[Scope::MC_EVACUATE_UPDATE_POINTERS_SLOTS], current_.scopes[Scope::MC_EVACUATE_UPDATE_POINTERS_TO_NEW],
current_.scopes[Scope::MC_EVACUATE_UPDATE_POINTERS_WEAK], current_.scopes[Scope::MC_EVACUATE_UPDATE_POINTERS_WEAK],
current_.scopes[Scope::MC_FINISH], current_.scopes[Scope::MC_MARK], current_.scopes[Scope::MC_FINISH], current_.scopes[Scope::MC_MARK],
current_.scopes[Scope::MC_MARK_FINISH_INCREMENTAL], current_.scopes[Scope::MC_MARK_FINISH_INCREMENTAL],
......
...@@ -60,8 +60,8 @@ enum ScavengeSpeedMode { kForAllObjects, kForSurvivedObjects }; ...@@ -60,8 +60,8 @@ enum ScavengeSpeedMode { kForAllObjects, kForSurvivedObjects };
F(MC_EVACUATE_PROLOGUE) \ F(MC_EVACUATE_PROLOGUE) \
F(MC_EVACUATE_REBALANCE) \ F(MC_EVACUATE_REBALANCE) \
F(MC_EVACUATE_UPDATE_POINTERS) \ F(MC_EVACUATE_UPDATE_POINTERS) \
F(MC_EVACUATE_UPDATE_POINTERS_SLOTS) \ F(MC_EVACUATE_UPDATE_POINTERS_TO_EVACUATED) \
F(MC_EVACUATE_UPDATE_POINTERS_TO_NEW_ROOTS) \ F(MC_EVACUATE_UPDATE_POINTERS_TO_NEW) \
F(MC_EVACUATE_UPDATE_POINTERS_WEAK) \ F(MC_EVACUATE_UPDATE_POINTERS_WEAK) \
F(MC_FINISH) \ F(MC_FINISH) \
F(MC_MARK) \ F(MC_MARK) \
...@@ -91,8 +91,10 @@ enum ScavengeSpeedMode { kForAllObjects, kForSurvivedObjects }; ...@@ -91,8 +91,10 @@ enum ScavengeSpeedMode { kForAllObjects, kForSurvivedObjects };
F(MINOR_MC_EVACUATE_PROLOGUE) \ F(MINOR_MC_EVACUATE_PROLOGUE) \
F(MINOR_MC_EVACUATE_REBALANCE) \ F(MINOR_MC_EVACUATE_REBALANCE) \
F(MINOR_MC_EVACUATE_UPDATE_POINTERS) \ F(MINOR_MC_EVACUATE_UPDATE_POINTERS) \
F(MINOR_MC_EVACUATE_UPDATE_POINTERS_SLOTS) \ F(MINOR_MC_EVACUATE_UPDATE_POINTERS_TO_NEW) \
F(MINOR_MC_EVACUATE_UPDATE_POINTERS_TO_NEW_ROOTS) \ F(MINOR_MC_EVACUATE_UPDATE_POINTERS_TO_NEW_ROOTS) \
F(MINOR_MC_EVACUATE_UPDATE_POINTERS_TO_NEW_TOSPACE) \
F(MINOR_MC_EVACUATE_UPDATE_POINTERS_TO_NEW_OLD) \
F(MINOR_MC_EVACUATE_UPDATE_POINTERS_WEAK) \ F(MINOR_MC_EVACUATE_UPDATE_POINTERS_WEAK) \
F(MINOR_MC_MARK) \ F(MINOR_MC_MARK) \
F(MINOR_MC_MARK_GLOBAL_HANDLES) \ F(MINOR_MC_MARK_GLOBAL_HANDLES) \
......
This diff is collapsed.
...@@ -22,7 +22,6 @@ namespace internal { ...@@ -22,7 +22,6 @@ namespace internal {
// Forward declarations. // Forward declarations.
class EvacuationJobTraits; class EvacuationJobTraits;
class HeapObjectVisitor; class HeapObjectVisitor;
class ItemParallelJob;
class LocalWorkStealingMarkingDeque; class LocalWorkStealingMarkingDeque;
class MarkCompactCollector; class MarkCompactCollector;
class MinorMarkCompactCollector; class MinorMarkCompactCollector;
...@@ -277,9 +276,9 @@ class MarkCompactCollectorBase { ...@@ -277,9 +276,9 @@ class MarkCompactCollectorBase {
// Returns whether this page should be moved according to heuristics. // Returns whether this page should be moved according to heuristics.
bool ShouldMovePage(Page* p, intptr_t live_bytes); bool ShouldMovePage(Page* p, intptr_t live_bytes);
int CollectToSpaceUpdatingItems(ItemParallelJob* job);
template <RememberedSetType type> template <RememberedSetType type>
int CollectRememberedSetUpdatingItems(ItemParallelJob* job); void UpdatePointersInParallel(base::Semaphore* semaphore);
void UpdateToSpacePointersInParallel(base::Semaphore* semaphore);
int NumberOfParallelCompactionTasks(int pages); int NumberOfParallelCompactionTasks(int pages);
int NumberOfParallelPointerUpdateTasks(int pages, int slots); int NumberOfParallelPointerUpdateTasks(int pages, int slots);
......
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