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

Issue 621829 link

Starred by 4 users

Issue metadata

Status: Started
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Feature

Blocked on:
issue 621837
issue 626082



Sign in to add a comment

Improve support for external memory

Project Member Reported by mlippautz@chromium.org, Jun 21 2016

Issue description

Tracking bug for improving handling of external memory in V8.

Design doc: https://docs.google.com/document/d/1moS2JJ2CXUWQ5kFgOBlIbtRIo202NjFnNWqB9ewfN5k
 
Project Member

Comment 1 by bugdroid1@chromium.org, Jun 21 2016

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

commit 706b3f2730729f80686ad4a3228b860a13627afd
Author: mlippautz <mlippautz@chromium.org>
Date: Tue Jun 21 09:25:08 2016

[heap] Internalize kExternalAllocationLimit

Base the fast-path in AdjustAmountOfExternalMemory on a value + limit. To
preserve the behavior the limit is just set using kExternalAllocationLimit.

Redo naming of related members.

R=jochen@chromium.org
BUG=chromium:621829
LOG=N

Review-Url: https://codereview.chromium.org/2085893002
Cr-Commit-Position: refs/heads/master@{#37131}

[modify] https://crrev.com/706b3f2730729f80686ad4a3228b860a13627afd/include/v8.h
[modify] https://crrev.com/706b3f2730729f80686ad4a3228b860a13627afd/src/extensions/statistics-extension.cc
[modify] https://crrev.com/706b3f2730729f80686ad4a3228b860a13627afd/src/globals.h
[modify] https://crrev.com/706b3f2730729f80686ad4a3228b860a13627afd/src/heap/array-buffer-tracker-inl.h
[modify] https://crrev.com/706b3f2730729f80686ad4a3228b860a13627afd/src/heap/array-buffer-tracker.cc
[modify] https://crrev.com/706b3f2730729f80686ad4a3228b860a13627afd/src/heap/heap.cc
[modify] https://crrev.com/706b3f2730729f80686ad4a3228b860a13627afd/src/heap/heap.h
[modify] https://crrev.com/706b3f2730729f80686ad4a3228b860a13627afd/src/heap/mark-compact.cc
[modify] https://crrev.com/706b3f2730729f80686ad4a3228b860a13627afd/src/isolate.cc
[modify] https://crrev.com/706b3f2730729f80686ad4a3228b860a13627afd/test/cctest/heap/test-heap.cc
[modify] https://crrev.com/706b3f2730729f80686ad4a3228b860a13627afd/test/cctest/test-api.cc

Comment 2 by kbr@chromium.org, Jun 22 2016

Blockedon: 621837
Linking to a customer bug with a possibly relevant test case.

Cc: halliwell@chromium.org
Project Member

Comment 4 by bugdroid1@chromium.org, Aug 18 2016

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

commit 28e13bd6a75c9467dae43043e7b741a1387d5252
Author: mlippautz <mlippautz@chromium.org>
Date: Thu Aug 18 20:45:18 2016

[heap] Improve size profiling for ArrayBuffer tracking

Eagerly account for retained sizes during ArrayBuffer tracking. Following up on this,
we can now do Scavenges if the amount of memory retained from new space is too large.

BUG=chromium:621829
R=jochen@chromium.org,hpayer@chromium.org

Review-Url: https://codereview.chromium.org/2210263002
Cr-Commit-Position: refs/heads/master@{#38731}

[modify] https://crrev.com/28e13bd6a75c9467dae43043e7b741a1387d5252/include/v8.h
[modify] https://crrev.com/28e13bd6a75c9467dae43043e7b741a1387d5252/src/heap/array-buffer-tracker-inl.h
[modify] https://crrev.com/28e13bd6a75c9467dae43043e7b741a1387d5252/src/heap/array-buffer-tracker.cc
[modify] https://crrev.com/28e13bd6a75c9467dae43043e7b741a1387d5252/src/heap/array-buffer-tracker.h
[modify] https://crrev.com/28e13bd6a75c9467dae43043e7b741a1387d5252/src/heap/heap.cc
[modify] https://crrev.com/28e13bd6a75c9467dae43043e7b741a1387d5252/src/heap/heap.h
[modify] https://crrev.com/28e13bd6a75c9467dae43043e7b741a1387d5252/src/heap/mark-compact.cc
[modify] https://crrev.com/28e13bd6a75c9467dae43043e7b741a1387d5252/src/heap/spaces.cc
[modify] https://crrev.com/28e13bd6a75c9467dae43043e7b741a1387d5252/test/cctest/heap/test-array-buffer-tracker.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Aug 19 2016

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

commit fbf1bc66c46f9ad5412ea5dfed42a56d4284922f
Author: mlippautz <mlippautz@chromium.org>
Date: Fri Aug 19 08:17:09 2016

Revert of [heap] Improve size profiling for ArrayBuffer tracking (patchset #6 id:140001 of https://codereview.chromium.org/2210263002/ )

Reason for revert:
Tanks octane

Original issue's description:
> [heap] Improve size profiling for ArrayBuffer tracking
>
> Eagerly account for retained sizes during ArrayBuffer tracking. Following up on this,
> we can now do Scavenges if the amount of memory retained from new space is too large.
>
> BUG=chromium:621829
> R=jochen@chromium.org,hpayer@chromium.org
>
> Committed: https://crrev.com/28e13bd6a75c9467dae43043e7b741a1387d5252
> Cr-Commit-Position: refs/heads/master@{#38731}

TBR=jochen@chromium.org,hpayer@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:621829

Review-Url: https://codereview.chromium.org/2261513003
Cr-Commit-Position: refs/heads/master@{#38739}

[modify] https://crrev.com/fbf1bc66c46f9ad5412ea5dfed42a56d4284922f/include/v8.h
[modify] https://crrev.com/fbf1bc66c46f9ad5412ea5dfed42a56d4284922f/src/heap/array-buffer-tracker-inl.h
[modify] https://crrev.com/fbf1bc66c46f9ad5412ea5dfed42a56d4284922f/src/heap/array-buffer-tracker.cc
[modify] https://crrev.com/fbf1bc66c46f9ad5412ea5dfed42a56d4284922f/src/heap/array-buffer-tracker.h
[modify] https://crrev.com/fbf1bc66c46f9ad5412ea5dfed42a56d4284922f/src/heap/heap.cc
[modify] https://crrev.com/fbf1bc66c46f9ad5412ea5dfed42a56d4284922f/src/heap/heap.h
[modify] https://crrev.com/fbf1bc66c46f9ad5412ea5dfed42a56d4284922f/src/heap/mark-compact.cc
[modify] https://crrev.com/fbf1bc66c46f9ad5412ea5dfed42a56d4284922f/src/heap/spaces.cc
[modify] https://crrev.com/fbf1bc66c46f9ad5412ea5dfed42a56d4284922f/test/cctest/heap/test-array-buffer-tracker.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Aug 23 2016

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

commit 00c49a3e855793278d8ca6920ac98e9c922b966c
Author: keishi <keishi@chromium.org>
Date: Tue Aug 23 06:22:52 2016

Add kGCCallbackFlagCollectAllExternalMemory for external memory limit triggered gc

BUG=chromium:570268,chromium:621829

Review-Url: https://codereview.chromium.org/2233683002
Cr-Commit-Position: refs/heads/master@{#38808}

[modify] https://crrev.com/00c49a3e855793278d8ca6920ac98e9c922b966c/include/v8.h
[modify] https://crrev.com/00c49a3e855793278d8ca6920ac98e9c922b966c/src/heap/heap.cc

Project Member

Comment 7 by bugdroid1@chromium.org, Sep 2 2016

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

commit ce66eec800e7329b0967b0f8eec7db05b2b22218
Author: mlippautz <mlippautz@chromium.org>
Date: Fri Sep 02 12:12:32 2016

[heap] Introduce hard limit for external memory

We introduce, similar to regular heap, a hard and a soft limit for external memory.
- Upon reaching the hard limit we do a full GC. The hard limit is a a delta from
  the size of external memory at last GC.
- Upon reaching the soft limit we start incremental marking. Each further
  AdjustAmountOfExternalMemory will trigger a marking step. The step size depends
  on how far we are away from the hard limit. Further away means we have still
  some wiggle room and the step will be small. Being closer to the hard limit
  makes it more likely to trigger a full GC, so we increase the step size.

BUG=chromium:621829

Review-Url: https://codereview.chromium.org/2256853003
Cr-Commit-Position: refs/heads/master@{#39133}

[modify] https://crrev.com/ce66eec800e7329b0967b0f8eec7db05b2b22218/src/flag-definitions.h
[modify] https://crrev.com/ce66eec800e7329b0967b0f8eec7db05b2b22218/src/globals.h
[modify] https://crrev.com/ce66eec800e7329b0967b0f8eec7db05b2b22218/src/heap/heap.cc
[modify] https://crrev.com/ce66eec800e7329b0967b0f8eec7db05b2b22218/src/heap/heap.h
[modify] https://crrev.com/ce66eec800e7329b0967b0f8eec7db05b2b22218/test/cctest/test-api.cc

Blockedon: 626082

Sign in to add a comment