New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 922038 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug

Blocking:
issue 808143



Sign in to add a comment

Reload bloated renderer without renderer shutdown

Project Member Reported by u...@chromium.org, Jan 15

Issue description

This is a tracking bug to experiment with reloading bloated renderer without actually shutting down the renderer (the idea suggested by haraken@ and mlippautz@).

This works around the blocker (crbug.com/875215). The efficiency of freeing memory depends on garbage collection and may be good enough in practice so that we do not need to shutdown the renderer.

I will implement the necessary changes and evaluate the memory freeing efficiency in Finch experiment.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Jan 15

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/93283bf04ae3fd96592b4090e90ac75130aa9d52

commit 93283bf04ae3fd96592b4090e90ac75130aa9d52
Author: Ulan Degenbaev <ulan@chromium.org>
Date: Tue Jan 15 18:08:07 2019

[heap, api] Add API for automatically restoring the heap limit.

Now the embedder can instruct V8 to restore the initial heap limit
once the heap size drops below the given percentage of the heap limit.

Bug: chromium:922038
Change-Id: Ib668406c5d59c02b45a8eae7de96527ebc3f2b4d
Reviewed-on: https://chromium-review.googlesource.com/c/1411606
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58837}
[modify] https://crrev.com/93283bf04ae3fd96592b4090e90ac75130aa9d52/include/v8.h
[modify] https://crrev.com/93283bf04ae3fd96592b4090e90ac75130aa9d52/src/api.cc
[modify] https://crrev.com/93283bf04ae3fd96592b4090e90ac75130aa9d52/src/heap/heap.cc
[modify] https://crrev.com/93283bf04ae3fd96592b4090e90ac75130aa9d52/src/heap/heap.h
[modify] https://crrev.com/93283bf04ae3fd96592b4090e90ac75130aa9d52/test/cctest/heap/test-heap.cc

Project Member

Comment 2 by bugdroid1@chromium.org, Jan 16 (6 days ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0888f3786689cd9def28c909fde3dad9fcec1581

commit 0888f3786689cd9def28c909fde3dad9fcec1581
Author: Ulan Degenbaev <ulan@chromium.org>
Date: Wed Jan 16 22:24:50 2019

Reload bloated tab without shutting down the renderer.

This relies on V8's garbage collection to free up the memory
instead of replacing the renderer process.

Bug: 922038
Change-Id: I2f497b06a29a9db7d07175ef083a7402aada7433
Reviewed-on: https://chromium-review.googlesource.com/c/1411998
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#623401}
[modify] https://crrev.com/0888f3786689cd9def28c909fde3dad9fcec1581/chrome/browser/ui/bloated_renderer/bloated_renderer_tab_helper.cc

Project Member

Comment 3 by bugdroid1@chromium.org, Jan 17 (5 days ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f44f974b128e02501cf5c37cdce60e3b36afacaa

commit f44f974b128e02501cf5c37cdce60e3b36afacaa
Author: Ulan Degenbaev <ulan@chromium.org>
Date: Thu Jan 17 14:57:29 2019

Allow multiple bloated renderer detections in the same renderer.

Currently the BloatedRendererDetector assumes that the renderer
process is shutdown once the bloated renderer condition is detected.

This patch removes that assumption, so the detector becomes more generic.
As a result, the kSmallUptime case is replaced with kCooldownTime case.

Bug: 922038
Change-Id: I18b87d744c704b386c24a911d8cd94af03948a68
Reviewed-on: https://chromium-review.googlesource.com/c/1415551
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#623684}
[modify] https://crrev.com/f44f974b128e02501cf5c37cdce60e3b36afacaa/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc
[modify] https://crrev.com/f44f974b128e02501cf5c37cdce60e3b36afacaa/third_party/blink/renderer/bindings/core/v8/v8_initializer.h
[modify] https://crrev.com/f44f974b128e02501cf5c37cdce60e3b36afacaa/third_party/blink/renderer/controller/bloated_renderer_detector.cc
[modify] https://crrev.com/f44f974b128e02501cf5c37cdce60e3b36afacaa/third_party/blink/renderer/controller/bloated_renderer_detector.h
[modify] https://crrev.com/f44f974b128e02501cf5c37cdce60e3b36afacaa/third_party/blink/renderer/controller/bloated_renderer_detector_test.cc
[modify] https://crrev.com/f44f974b128e02501cf5c37cdce60e3b36afacaa/third_party/blink/renderer/platform/bindings/v8_per_isolate_data.cc
[modify] https://crrev.com/f44f974b128e02501cf5c37cdce60e3b36afacaa/third_party/blink/renderer/platform/bindings/v8_per_isolate_data.h
[modify] https://crrev.com/f44f974b128e02501cf5c37cdce60e3b36afacaa/tools/metrics/histograms/enums.xml

Sign in to add a comment