Commit 5c523fa4 authored by Hannes Payer's avatar Hannes Payer Committed by Commit Bot

Revert "[oilpan] Move CompleteSweep() to ScheduleGCIfNeeded() during allocation to play safe."

This reverts commit 5fa0b1a7.

Reason for revert:
This is not correct since external memory reporting may 1) start an incremental V8 gc which 2) invokes wrapper tracing 3) which may fail if GC is forbidden, c.f. crbug/846093 I will look into this offline.

Bug:chromium:846093, chromium:846061

Original change's description:
> [oilpan] Move CompleteSweep() to ScheduleGCIfNeeded() during allocation to play safe.
>
> CompleteSweep() needs to be called before we call ReportMemoryToV8(). This change
> makes this dependency more explicit.
>
> Change-Id: I044af54bcfdc8a7457edbb492fba6bfe4ff210aa
> Reviewed-on: https://chromium-review.googlesource.com/1069271
> Reviewed-by: Kentaro Hara <haraken@chromium.org>
> Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
> Commit-Queue: Hannes Payer <hpayer@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#560987}

TBR=haraken@chromium.org,hpayer@chromium.org,mlippautz@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: I06899e2e5bf0c4303afdd946fd3e6a99f2954530
Reviewed-on: https://chromium-review.googlesource.com/1071288Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#561467}
parent 0ac91e13
...@@ -580,6 +580,8 @@ void ThreadState::ScheduleGCIfNeeded() { ...@@ -580,6 +580,8 @@ void ThreadState::ScheduleGCIfNeeded() {
if (IsGCForbidden() || SweepForbidden()) if (IsGCForbidden() || SweepForbidden())
return; return;
ReportMemoryToV8();
if (ShouldForceMemoryPressureGC()) { if (ShouldForceMemoryPressureGC()) {
CompleteSweep(); CompleteSweep();
if (ShouldForceMemoryPressureGC()) { if (ShouldForceMemoryPressureGC()) {
...@@ -1012,8 +1014,6 @@ void ThreadState::PostSweep() { ...@@ -1012,8 +1014,6 @@ void ThreadState::PostSweep() {
DCHECK(CheckThread()); DCHECK(CheckThread());
ThreadHeap::ReportMemoryUsageForTracing(); ThreadHeap::ReportMemoryUsageForTracing();
ReportMemoryToV8();
if (IsMainThread()) { if (IsMainThread()) {
ThreadHeapStats& stats = heap_->HeapStats(); ThreadHeapStats& stats = heap_->HeapStats();
double collection_rate = 1.0 - stats.LiveObjectRateSinceLastGC(); double collection_rate = 1.0 - stats.LiveObjectRateSinceLastGC();
......
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