Tracking bug for improving handling of external memory in V8. Design doc: https://docs.google.com/document/d/1moS2JJ2CXUWQ5kFgOBlIbtRIo202NjFnNWqB9ewfN5k
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
Linking to a customer bug with a possibly relevant test case.
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
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
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
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
could you set link https://docs.google.com/document/d/1moS2JJ2CXUWQ5kFgOBlIbtRIo202NjFnNWqB9ewfN5k public? thx!
Comment 1 by bugdroid1@chromium.org
, Jun 21 2016