Commit 49de5875 authored by Ulan Degenbaev's avatar Ulan Degenbaev Committed by Commit Bot

[heap] Perform more embedder tracing in incremental marking step

This should fix GC latency regressions introduced in 4c6598.

Bug: chromium:926189, chromium:930844, chromium:930693,chromium:931629
Change-Id: I81c91829badbeea82d6e44670d07794632869424
Reviewed-on: https://chromium-review.googlesource.com/c/1477216Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59668}
parent 1a3a2bc3
...@@ -996,14 +996,16 @@ StepResult IncrementalMarking::AdvanceWithDeadline( ...@@ -996,14 +996,16 @@ StepResult IncrementalMarking::AdvanceWithDeadline(
double remaining_time_in_ms = 0.0; double remaining_time_in_ms = 0.0;
StepResult result; StepResult result;
do { do {
StepResult embedder_result = EmbedderStep(kStepSizeInMs / 2);
StepResult v8_result = StepResult v8_result =
V8Step(kStepSizeInMs / 2, completion_action, step_origin); V8Step(kStepSizeInMs / 2, completion_action, step_origin);
remaining_time_in_ms =
deadline_in_ms - heap()->MonotonicallyIncreasingTimeInMs();
StepResult embedder_result =
EmbedderStep(Min(kStepSizeInMs, remaining_time_in_ms));
result = CombineStepResults(v8_result, embedder_result); result = CombineStepResults(v8_result, embedder_result);
remaining_time_in_ms = remaining_time_in_ms =
deadline_in_ms - heap()->MonotonicallyIncreasingTimeInMs(); deadline_in_ms - heap()->MonotonicallyIncreasingTimeInMs();
} while (remaining_time_in_ms > kStepSizeInMs && !IsComplete() && } while (remaining_time_in_ms >= kStepSizeInMs &&
!marking_worklist()->IsEmpty() &&
result == StepResult::kMoreWorkRemaining); result == StepResult::kMoreWorkRemaining);
return result; return result;
} }
......
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