Tracking bug for implementing young generation mark compact collection
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/5af14e24824676e2fbe68bac6500f05d3b20368a commit 5af14e24824676e2fbe68bac6500f05d3b20368a Author: mlippautz <mlippautz@chromium.org> Date: Thu Nov 10 17:10:42 2016 [heap] Record pretenuring feedback for moved pages Record feedback for moved pages. Aligns the behavior of the copying and moving evacuator. BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2494723002 Cr-Commit-Position: refs/heads/master@{#40905} [modify] https://crrev.com/5af14e24824676e2fbe68bac6500f05d3b20368a/src/heap/heap-inl.h [modify] https://crrev.com/5af14e24824676e2fbe68bac6500f05d3b20368a/src/heap/mark-compact.cc [modify] https://crrev.com/5af14e24824676e2fbe68bac6500f05d3b20368a/src/heap/mark-compact.h [modify] https://crrev.com/5af14e24824676e2fbe68bac6500f05d3b20368a/src/heap/spaces-inl.h [modify] https://crrev.com/5af14e24824676e2fbe68bac6500f05d3b20368a/src/heap/spaces.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/df5b86de4cc3115b849d3c40d12637ce39131ed7 commit df5b86de4cc3115b849d3c40d12637ce39131ed7 Author: mlippautz <mlippautz@chromium.org> Date: Fri Nov 11 15:48:23 2016 [heap] Add basic infrastructure for Minor Mark-Compact collector BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2493803002 Cr-Commit-Position: refs/heads/master@{#40935} [modify] https://crrev.com/df5b86de4cc3115b849d3c40d12637ce39131ed7/src/flag-definitions.h [modify] https://crrev.com/df5b86de4cc3115b849d3c40d12637ce39131ed7/src/global-handles.cc [modify] https://crrev.com/df5b86de4cc3115b849d3c40d12637ce39131ed7/src/globals.h [modify] https://crrev.com/df5b86de4cc3115b849d3c40d12637ce39131ed7/src/heap/gc-tracer.cc [modify] https://crrev.com/df5b86de4cc3115b849d3c40d12637ce39131ed7/src/heap/gc-tracer.h [modify] https://crrev.com/df5b86de4cc3115b849d3c40d12637ce39131ed7/src/heap/heap.cc [modify] https://crrev.com/df5b86de4cc3115b849d3c40d12637ce39131ed7/src/heap/heap.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/9b5bdfeaebfdd34af5aae9b2bfeacb620cc4707d commit 9b5bdfeaebfdd34af5aae9b2bfeacb620cc4707d Author: mlippautz <mlippautz@chromium.org> Date: Tue Nov 15 18:22:05 2016 [heap] Only visit strong links during scavenge of promoted objects Previously, we also used to treat the link as strong, when iterating a promoted JSFunction. BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2506633002 Cr-Commit-Position: refs/heads/master@{#41008} [modify] https://crrev.com/9b5bdfeaebfdd34af5aae9b2bfeacb620cc4707d/src/heap/heap.cc [modify] https://crrev.com/9b5bdfeaebfdd34af5aae9b2bfeacb620cc4707d/src/heap/heap.h [modify] https://crrev.com/9b5bdfeaebfdd34af5aae9b2bfeacb620cc4707d/src/heap/mark-compact.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/7e5755cbc594b610fc26493a2bad547dd69138f3 commit 7e5755cbc594b610fc26493a2bad547dd69138f3 Author: mlippautz <mlippautz@chromium.org> Date: Fri Nov 18 12:55:53 2016 [heap] Minor MC: Add marking Adds the marking logic to mark the young generation. BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2498583002 Cr-Commit-Position: refs/heads/master@{#41104} [modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/src/global-handles.cc [modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/src/global-handles.h [modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/src/heap/gc-idle-time-handler.cc [modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/src/heap/gc-idle-time-handler.h [modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/src/heap/gc-tracer.cc [modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/src/heap/gc-tracer.h [modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/src/heap/heap.cc [modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/src/heap/heap.h [modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/src/heap/mark-compact.cc [modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/src/heap/mark-compact.h [modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/test/cctest/heap/heap-utils.cc [modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/test/cctest/heap/test-array-buffer-tracker.cc [modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/test/cctest/heap/test-heap.cc [modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/test/cctest/heap/test-page-promotion.cc [modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/test/cctest/test-serialize.cc [modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/test/cctest/test-weakmaps.cc [modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/test/unittests/heap/gc-idle-time-handler-unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/cbb8929e97ee475dab4f704a71637e76342e903a commit cbb8929e97ee475dab4f704a71637e76342e903a Author: mlippautz <mlippautz@chromium.org> Date: Fri Jan 20 07:55:43 2017 [heap] Provide ObjectMarking with marking transitions BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2644523002 Cr-Commit-Position: refs/heads/master@{#42531} [modify] https://crrev.com/cbb8929e97ee475dab4f704a71637e76342e903a/src/heap/array-buffer-tracker.cc [modify] https://crrev.com/cbb8929e97ee475dab4f704a71637e76342e903a/src/heap/heap.cc [modify] https://crrev.com/cbb8929e97ee475dab4f704a71637e76342e903a/src/heap/incremental-marking.cc [modify] https://crrev.com/cbb8929e97ee475dab4f704a71637e76342e903a/src/heap/incremental-marking.h [modify] https://crrev.com/cbb8929e97ee475dab4f704a71637e76342e903a/src/heap/mark-compact-inl.h [modify] https://crrev.com/cbb8929e97ee475dab4f704a71637e76342e903a/src/heap/mark-compact.cc [modify] https://crrev.com/cbb8929e97ee475dab4f704a71637e76342e903a/src/heap/mark-compact.h [modify] https://crrev.com/cbb8929e97ee475dab4f704a71637e76342e903a/src/heap/objects-visiting-inl.h [modify] https://crrev.com/cbb8929e97ee475dab4f704a71637e76342e903a/src/heap/scavenger.cc [modify] https://crrev.com/cbb8929e97ee475dab4f704a71637e76342e903a/src/heap/spaces.cc [modify] https://crrev.com/cbb8929e97ee475dab4f704a71637e76342e903a/src/objects-inl.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/3258bef0adc66fa2722ccea364fd3655e4a9e5d6 commit 3258bef0adc66fa2722ccea364fd3655e4a9e5d6 Author: bmeurer <bmeurer@chromium.org> Date: Fri Jan 20 08:30:08 2017 Revert of [heap] Provide ObjectMarking with marking transitions (patchset #5 id:80001 of https://codereview.chromium.org/2644523002/ ) Reason for revert: Breaks the tree: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20gc%20stress/builds/8349/steps/Mjsunit/logs/compiled-module-seria.. Original issue's description: > [heap] Provide ObjectMarking with marking transitions > > BUG=chromium:651354 > > Review-Url: https://codereview.chromium.org/2644523002 > Cr-Commit-Position: refs/heads/master@{#42531} > Committed: https://chromium.googlesource.com/v8/v8/+/cbb8929e97ee475dab4f704a71637e76342e903a TBR=hpayer@chromium.org,mlippautz@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2647873002 Cr-Commit-Position: refs/heads/master@{#42533} [modify] https://crrev.com/3258bef0adc66fa2722ccea364fd3655e4a9e5d6/src/heap/array-buffer-tracker.cc [modify] https://crrev.com/3258bef0adc66fa2722ccea364fd3655e4a9e5d6/src/heap/heap.cc [modify] https://crrev.com/3258bef0adc66fa2722ccea364fd3655e4a9e5d6/src/heap/incremental-marking.cc [modify] https://crrev.com/3258bef0adc66fa2722ccea364fd3655e4a9e5d6/src/heap/incremental-marking.h [modify] https://crrev.com/3258bef0adc66fa2722ccea364fd3655e4a9e5d6/src/heap/mark-compact-inl.h [modify] https://crrev.com/3258bef0adc66fa2722ccea364fd3655e4a9e5d6/src/heap/mark-compact.cc [modify] https://crrev.com/3258bef0adc66fa2722ccea364fd3655e4a9e5d6/src/heap/mark-compact.h [modify] https://crrev.com/3258bef0adc66fa2722ccea364fd3655e4a9e5d6/src/heap/objects-visiting-inl.h [modify] https://crrev.com/3258bef0adc66fa2722ccea364fd3655e4a9e5d6/src/heap/scavenger.cc [modify] https://crrev.com/3258bef0adc66fa2722ccea364fd3655e4a9e5d6/src/heap/spaces.cc [modify] https://crrev.com/3258bef0adc66fa2722ccea364fd3655e4a9e5d6/src/objects-inl.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/0659898b3ed60214b8d25c964bbd47784060430d commit 0659898b3ed60214b8d25c964bbd47784060430d Author: mlippautz <mlippautz@chromium.org> Date: Fri Jan 20 13:18:43 2017 Reland "[heap] Provide ObjectMarking with marking transitions" BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2637403011 Cr-Commit-Position: refs/heads/master@{#42555} [modify] https://crrev.com/0659898b3ed60214b8d25c964bbd47784060430d/src/heap/array-buffer-tracker.cc [modify] https://crrev.com/0659898b3ed60214b8d25c964bbd47784060430d/src/heap/heap.cc [modify] https://crrev.com/0659898b3ed60214b8d25c964bbd47784060430d/src/heap/incremental-marking.cc [modify] https://crrev.com/0659898b3ed60214b8d25c964bbd47784060430d/src/heap/incremental-marking.h [modify] https://crrev.com/0659898b3ed60214b8d25c964bbd47784060430d/src/heap/mark-compact-inl.h [modify] https://crrev.com/0659898b3ed60214b8d25c964bbd47784060430d/src/heap/mark-compact.cc [modify] https://crrev.com/0659898b3ed60214b8d25c964bbd47784060430d/src/heap/mark-compact.h [modify] https://crrev.com/0659898b3ed60214b8d25c964bbd47784060430d/src/heap/objects-visiting-inl.h [modify] https://crrev.com/0659898b3ed60214b8d25c964bbd47784060430d/src/heap/scavenger.cc [modify] https://crrev.com/0659898b3ed60214b8d25c964bbd47784060430d/src/heap/spaces.cc [modify] https://crrev.com/0659898b3ed60214b8d25c964bbd47784060430d/src/objects-inl.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/f227aa1ce52a71916814f814a54bd0e5c735720a commit f227aa1ce52a71916814f814a54bd0e5c735720a Author: Michael Lippautz <mlippautz@chromium.org> Date: Thu Feb 09 15:30:14 2017 [heap] Remove unused parameter from MC::MarkObject BUG=chromium:651354 Change-Id: I8d74133ca9b21ce9e0612efc1e5ace41d1002dae Reviewed-on: https://chromium-review.googlesource.com/440304 Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#43064} [modify] https://crrev.com/f227aa1ce52a71916814f814a54bd0e5c735720a/src/heap/heap.cc [modify] https://crrev.com/f227aa1ce52a71916814f814a54bd0e5c735720a/src/heap/mark-compact-inl.h [modify] https://crrev.com/f227aa1ce52a71916814f814a54bd0e5c735720a/src/heap/mark-compact.cc [modify] https://crrev.com/f227aa1ce52a71916814f814a54bd0e5c735720a/src/heap/mark-compact.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/e800933eee938161cc53edbd5e8dd3fae66c8453 commit e800933eee938161cc53edbd5e8dd3fae66c8453 Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed Feb 22 15:15:11 2017 [heap] Refactor evacuation routine Have clear prologue and epilogue steps. For a minor MC we can then templatize the prologue without changing the actual evacuation routine. BUG=chromium:651354 Change-Id: Ia238748e90bc6b616cd813d31198de182fe11498 Reviewed-on: https://chromium-review.googlesource.com/445898 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#43378} [modify] https://crrev.com/e800933eee938161cc53edbd5e8dd3fae66c8453/src/heap/gc-tracer.cc [modify] https://crrev.com/e800933eee938161cc53edbd5e8dd3fae66c8453/src/heap/gc-tracer.h [modify] https://crrev.com/e800933eee938161cc53edbd5e8dd3fae66c8453/src/heap/mark-compact.cc [modify] https://crrev.com/e800933eee938161cc53edbd5e8dd3fae66c8453/src/heap/mark-compact.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/d2c093bcafb0ec4795078424176e40ccb5f715aa commit d2c093bcafb0ec4795078424176e40ccb5f715aa Author: Michael Lippautz <mlippautz@chromium.org> Date: Fri Feb 24 18:57:31 2017 [heap] Support for minor MC marking during incremental marking BUG=chromium:651354 Change-Id: Ia8511723b17936b78b33ea685704237c100648e1 Reviewed-on: https://chromium-review.googlesource.com/439285 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#43422} [modify] https://crrev.com/d2c093bcafb0ec4795078424176e40ccb5f715aa/src/flag-definitions.h [modify] https://crrev.com/d2c093bcafb0ec4795078424176e40ccb5f715aa/src/heap/mark-compact-inl.h [modify] https://crrev.com/d2c093bcafb0ec4795078424176e40ccb5f715aa/src/heap/mark-compact.cc [modify] https://crrev.com/d2c093bcafb0ec4795078424176e40ccb5f715aa/src/heap/mark-compact.h [modify] https://crrev.com/d2c093bcafb0ec4795078424176e40ccb5f715aa/src/heap/spaces-inl.h [modify] https://crrev.com/d2c093bcafb0ec4795078424176e40ccb5f715aa/src/heap/spaces.cc [modify] https://crrev.com/d2c093bcafb0ec4795078424176e40ccb5f715aa/src/heap/spaces.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/12963af725dbaf031c27ceed07b4cf63225bc784 commit 12963af725dbaf031c27ceed07b4cf63225bc784 Author: Michael Lippautz <mlippautz@chromium.org> Date: Thu Mar 02 13:27:05 2017 [heap] Support for minor MC marking during incremental marking part 1 First part of relanding d2c093bcafb0ec4795078424176e40ccb5f715aa. BUG=chromium:651354 Change-Id: I34ebea331d482d5039626ccff48b11ad175793ee Reviewed-on: https://chromium-review.googlesource.com/448518 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#43541} [modify] https://crrev.com/12963af725dbaf031c27ceed07b4cf63225bc784/src/heap/mark-compact.cc [modify] https://crrev.com/12963af725dbaf031c27ceed07b4cf63225bc784/src/heap/mark-compact.h [modify] https://crrev.com/12963af725dbaf031c27ceed07b4cf63225bc784/src/heap/spaces-inl.h [modify] https://crrev.com/12963af725dbaf031c27ceed07b4cf63225bc784/src/heap/spaces.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/68d6b6c613c8641748a390a10d886859e5afa38b commit 68d6b6c613c8641748a390a10d886859e5afa38b Author: Michael Lippautz <mlippautz@chromium.org> Date: Fri Mar 03 12:10:33 2017 [heap] Support for minor MC marking during incremental marking part 2 Second part of relanding d2c093bcafb0ec4795078424176e40ccb5f715aa. BUG=chromium:651354 Change-Id: I4d48e870ac3a630ee1c286a86e630b8cf52cadf9 Reviewed-on: https://chromium-review.googlesource.com/449712 Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#43580} [modify] https://crrev.com/68d6b6c613c8641748a390a10d886859e5afa38b/src/flag-definitions.h [modify] https://crrev.com/68d6b6c613c8641748a390a10d886859e5afa38b/src/heap/mark-compact-inl.h [modify] https://crrev.com/68d6b6c613c8641748a390a10d886859e5afa38b/src/heap/mark-compact.cc [modify] https://crrev.com/68d6b6c613c8641748a390a10d886859e5afa38b/src/heap/mark-compact.h [modify] https://crrev.com/68d6b6c613c8641748a390a10d886859e5afa38b/src/heap/spaces-inl.h [modify] https://crrev.com/68d6b6c613c8641748a390a10d886859e5afa38b/src/heap/spaces.cc [modify] https://crrev.com/68d6b6c613c8641748a390a10d886859e5afa38b/src/heap/spaces.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/efd4b2d3af8e122c76d05e692416a4e71d10de67 commit efd4b2d3af8e122c76d05e692416a4e71d10de67 Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed Mar 08 12:01:10 2017 [heap] Bail out for page promotion tests when feature is disabled BUG=chromium:651354 Change-Id: Iaa2be2504474842d101f19fa2f6c15baa88544c6 Reviewed-on: https://chromium-review.googlesource.com/451497 Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#43665} [modify] https://crrev.com/efd4b2d3af8e122c76d05e692416a4e71d10de67/test/cctest/heap/test-page-promotion.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/215af922ca00c29e44ad474c3ea5281fb2b50c3e commit 215af922ca00c29e44ad474c3ea5281fb2b50c3e Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed Mar 08 12:40:14 2017 [heap] Reuse space of last closed LAB Reuse the last LAB's unused area for further newspace allocation. This is relevant when we expect GCs that use evacuation to compact down new space to just live bytes for single tasks. BUG=chromium:651354 Change-Id: Ic418521d98f418a93d3748b824e3ddb6ff7a40c3 Reviewed-on: https://chromium-review.googlesource.com/451398 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#43670} [modify] https://crrev.com/215af922ca00c29e44ad474c3ea5281fb2b50c3e/src/heap/mark-compact.cc [modify] https://crrev.com/215af922ca00c29e44ad474c3ea5281fb2b50c3e/src/heap/spaces.cc [modify] https://crrev.com/215af922ca00c29e44ad474c3ea5281fb2b50c3e/src/heap/spaces.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/99bdf971c873a103b48f0d4712f91222892980e3 commit 99bdf971c873a103b48f0d4712f91222892980e3 Author: Michael Lippautz <mlippautz@chromium.org> Date: Thu Mar 09 13:39:04 2017 [heap] Fix out-of-bounds read in LiveObjectIterator::Next We need to check whether advancing the iterator moved us beyong the end of the bitmap. This has not been flushed out as our inlined bitmap is still in valid memory. In practice this is not a problem because the value is never used as we are at the end of the bitmap. Asan rightfully complains when using an external bitmap though. BUG=chromium:651354 Change-Id: I8b141a467e9552f8ac2287dd62a725a14a289a37 Reviewed-on: https://chromium-review.googlesource.com/452497 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#43696} [modify] https://crrev.com/99bdf971c873a103b48f0d4712f91222892980e3/src/heap/mark-compact-inl.h [modify] https://crrev.com/99bdf971c873a103b48f0d4712f91222892980e3/src/heap/mark-compact.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/173109b9651f37306473f8922de4fe6d03e4ce05 commit 173109b9651f37306473f8922de4fe6d03e4ce05 Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue Mar 21 10:29:50 2017 [heap] Introduce explicit marking state and instance for minor MC BUG=chromium:651354 Change-Id: Idcd7780f53ad07b3d782a66455f9c60addc2418d Reviewed-on: https://chromium-review.googlesource.com/457317 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#43971} [modify] https://crrev.com/173109b9651f37306473f8922de4fe6d03e4ce05/src/flag-definitions.h [modify] https://crrev.com/173109b9651f37306473f8922de4fe6d03e4ce05/src/heap/gc-tracer.h [modify] https://crrev.com/173109b9651f37306473f8922de4fe6d03e4ce05/src/heap/heap.cc [modify] https://crrev.com/173109b9651f37306473f8922de4fe6d03e4ce05/src/heap/heap.h [modify] https://crrev.com/173109b9651f37306473f8922de4fe6d03e4ce05/src/heap/mark-compact-inl.h [modify] https://crrev.com/173109b9651f37306473f8922de4fe6d03e4ce05/src/heap/mark-compact.cc [modify] https://crrev.com/173109b9651f37306473f8922de4fe6d03e4ce05/src/heap/mark-compact.h [modify] https://crrev.com/173109b9651f37306473f8922de4fe6d03e4ce05/src/heap/spaces.h [modify] https://crrev.com/173109b9651f37306473f8922de4fe6d03e4ce05/test/cctest/heap/test-mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/6deb226705493efb3a6ebe083f0547174fc34cad commit 6deb226705493efb3a6ebe083f0547174fc34cad Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue Mar 21 13:54:17 2017 [heap] Untangle Evacuator from MarkCompactCollector BUG=chromium:651354 Change-Id: I15b2ee763882af369bf4b6274ce04e52dfb657e7 Reviewed-on: https://chromium-review.googlesource.com/457321 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#43980} [modify] https://crrev.com/6deb226705493efb3a6ebe083f0547174fc34cad/src/heap/mark-compact.cc [modify] https://crrev.com/6deb226705493efb3a6ebe083f0547174fc34cad/src/heap/mark-compact.h [modify] https://crrev.com/6deb226705493efb3a6ebe083f0547174fc34cad/src/heap/spaces.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/8f6135f1d214645bf4df5ca87e99151fb0427e00 commit 8f6135f1d214645bf4df5ca87e99151fb0427e00 Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed Mar 22 13:35:39 2017 [heap] Refactor marking verification Use MarkingState to abstract over the different sets of markbits. BUG=chromium:651354 Change-Id: I1635eb0d441be2aeed19f0ed91999f0f0f1bbffc Reviewed-on: https://chromium-review.googlesource.com/458398 Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#44024} [modify] https://crrev.com/8f6135f1d214645bf4df5ca87e99151fb0427e00/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/761514fe04bc30f5b5e3d709883010658f1358aa commit 761514fe04bc30f5b5e3d709883010658f1358aa Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed Mar 22 15:42:58 2017 [heap] Evacuator: Factor out dependencies BUG=chromium:651354 Change-Id: Ic4cc354160b84267a4d930734120b68c2b7ba092 Reviewed-on: https://chromium-review.googlesource.com/458351 Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#44030} [modify] https://crrev.com/761514fe04bc30f5b5e3d709883010658f1358aa/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/e741957a6f26cbc2dce71b001518ce35dfab2d97 commit e741957a6f26cbc2dce71b001518ce35dfab2d97 Author: Michael Lippautz <mlippautz@chromium.org> Date: Thu Mar 23 18:20:37 2017 [heap] Minor MC cleanups BUG=chromium:651354 Change-Id: Ie9d39306c3baf2462ea5eee4f5a5ff436912744e Reviewed-on: https://chromium-review.googlesource.com/458423 Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#44077} [modify] https://crrev.com/e741957a6f26cbc2dce71b001518ce35dfab2d97/src/heap/mark-compact.cc [modify] https://crrev.com/e741957a6f26cbc2dce71b001518ce35dfab2d97/src/heap/mark-compact.h [modify] https://crrev.com/e741957a6f26cbc2dce71b001518ce35dfab2d97/src/heap/spaces-inl.h [modify] https://crrev.com/e741957a6f26cbc2dce71b001518ce35dfab2d97/src/heap/spaces.cc [modify] https://crrev.com/e741957a6f26cbc2dce71b001518ce35dfab2d97/src/heap/spaces.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/79ac83e121fe60b53e636197c28e345737f5e68a commit 79ac83e121fe60b53e636197c28e345737f5e68a Author: mlippautz <mlippautz@chromium.org> Date: Fri Mar 24 18:54:04 2017 [heap] Enforce explicit MarkingState Require the use of MarkingState when going through ObjectMarking and friends. BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2770253002 Cr-Commit-Position: refs/heads/master@{#44123} [modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/src/heap/array-buffer-tracker.cc [modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/src/heap/heap.cc [modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/src/heap/incremental-marking.cc [modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/src/heap/incremental-marking.h [modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/src/heap/mark-compact-inl.h [modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/src/heap/mark-compact.cc [modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/src/heap/mark-compact.h [modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/src/heap/object-stats.cc [modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/src/heap/objects-visiting-inl.h [modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/src/heap/scavenger.cc [modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/src/heap/spaces-inl.h [modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/src/heap/spaces.cc [modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/src/heap/spaces.h [modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/src/objects-inl.h [modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/test/cctest/heap/test-compaction.cc [modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/test/cctest/heap/test-heap.cc [modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/test/cctest/heap/test-mark-compact.cc [modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/test/cctest/heap/test-page-promotion.cc [modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/test/cctest/test-unboxed-doubles.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/396f1e242184b936c61dda7a14d1306d43b1863c commit 396f1e242184b936c61dda7a14d1306d43b1863c Author: mlippautz <mlippautz@chromium.org> Date: Tue Apr 04 13:05:33 2017 [heap] Refactor evacuation verifier BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2790373002 Cr-Commit-Position: refs/heads/master@{#44375} [modify] https://crrev.com/396f1e242184b936c61dda7a14d1306d43b1863c/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/c766727ae69d43db66415a3483acc0e846b444d7 commit c766727ae69d43db66415a3483acc0e846b444d7 Author: machenbach <machenbach@chromium.org> Date: Tue Apr 04 14:06:12 2017 Revert of [heap] Refactor evacuation verifier (patchset #1 id:1 of https://codereview.chromium.org/2790373002/ ) Reason for revert: Speculative revert. Breaks https://build.chromium.org/p/client.v8/builders/V8%20Win64%20-%20debug/builds/16112 and seems to lead to flakes. Original issue's description: > [heap] Refactor evacuation verifier > > BUG=chromium:651354 > > Review-Url: https://codereview.chromium.org/2790373002 > Cr-Commit-Position: refs/heads/master@{#44375} > Committed: https://chromium.googlesource.com/v8/v8/+/396f1e242184b936c61dda7a14d1306d43b1863c TBR=ulan@chromium.org,mlippautz@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2795903004 Cr-Commit-Position: refs/heads/master@{#44377} [modify] https://crrev.com/c766727ae69d43db66415a3483acc0e846b444d7/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/ce9a2db1e13131245d8adc2757b9d9202ba568e0 commit ce9a2db1e13131245d8adc2757b9d9202ba568e0 Author: mlippautz <mlippautz@chromium.org> Date: Tue Apr 04 14:28:21 2017 [heap] Fix CompactionSpace test and move to unittests BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2796033002 Cr-Commit-Position: refs/heads/master@{#44382} [modify] https://crrev.com/ce9a2db1e13131245d8adc2757b9d9202ba568e0/src/heap/heap.h [modify] https://crrev.com/ce9a2db1e13131245d8adc2757b9d9202ba568e0/src/heap/spaces.h [modify] https://crrev.com/ce9a2db1e13131245d8adc2757b9d9202ba568e0/test/cctest/heap/test-spaces.cc [modify] https://crrev.com/ce9a2db1e13131245d8adc2757b9d9202ba568e0/test/unittests/BUILD.gn [add] https://crrev.com/ce9a2db1e13131245d8adc2757b9d9202ba568e0/test/unittests/heap/spaces-unittest.cc [modify] https://crrev.com/ce9a2db1e13131245d8adc2757b9d9202ba568e0/test/unittests/unittests.gyp
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/eddf90c4a750f88c75c11f344675f27942da0400 commit eddf90c4a750f88c75c11f344675f27942da0400 Author: mlippautz <mlippautz@chromium.org> Date: Tue Apr 04 14:47:06 2017 Revert of [heap] Fix CompactionSpace test and move to unittests (patchset #3 id:40001 of https://codereview.chromium.org/2796033002/ ) Reason for revert: Breaks https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Linux%20-%20shared/builds/17291 Original issue's description: > [heap] Fix CompactionSpace test and move to unittests > > BUG=chromium:651354 > > Review-Url: https://codereview.chromium.org/2796033002 > Cr-Commit-Position: refs/heads/master@{#44382} > Committed: https://chromium.googlesource.com/v8/v8/+/ce9a2db1e13131245d8adc2757b9d9202ba568e0 TBR=ulan@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2793033004 Cr-Commit-Position: refs/heads/master@{#44383} [modify] https://crrev.com/eddf90c4a750f88c75c11f344675f27942da0400/src/heap/heap.h [modify] https://crrev.com/eddf90c4a750f88c75c11f344675f27942da0400/src/heap/spaces.h [modify] https://crrev.com/eddf90c4a750f88c75c11f344675f27942da0400/test/cctest/heap/test-spaces.cc [modify] https://crrev.com/eddf90c4a750f88c75c11f344675f27942da0400/test/unittests/BUILD.gn [delete] https://crrev.com/ce9a2db1e13131245d8adc2757b9d9202ba568e0/test/unittests/heap/spaces-unittest.cc [modify] https://crrev.com/eddf90c4a750f88c75c11f344675f27942da0400/test/unittests/unittests.gyp
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/6d89de7b9e5fc3a5f9d0fa2cef51864191d5ff5f commit 6d89de7b9e5fc3a5f9d0fa2cef51864191d5ff5f Author: mlippautz <mlippautz@chromium.org> Date: Tue Apr 04 16:11:56 2017 Reland of [heap] Refactor evacuation verifier This reverts commit c766727ae69d43db66415a3483acc0e846b444d7. BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2793323002 Cr-Commit-Position: refs/heads/master@{#44386} [modify] https://crrev.com/6d89de7b9e5fc3a5f9d0fa2cef51864191d5ff5f/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/a0655790ae565895cbeb3986eb762021acf9ae26 commit a0655790ae565895cbeb3986eb762021acf9ae26 Author: mlippautz <mlippautz@chromium.org> Date: Wed Apr 05 07:36:15 2017 Reland of [heap] Fix CompactionSpace test and move to unittests This reverts commit eddf90c4a750f88c75c11f344675f27942da0400. BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2792063004 Cr-Commit-Position: refs/heads/master@{#44398} [modify] https://crrev.com/a0655790ae565895cbeb3986eb762021acf9ae26/src/heap/heap.h [modify] https://crrev.com/a0655790ae565895cbeb3986eb762021acf9ae26/src/heap/spaces.h [modify] https://crrev.com/a0655790ae565895cbeb3986eb762021acf9ae26/test/cctest/heap/test-spaces.cc [modify] https://crrev.com/a0655790ae565895cbeb3986eb762021acf9ae26/test/unittests/BUILD.gn [add] https://crrev.com/a0655790ae565895cbeb3986eb762021acf9ae26/test/unittests/heap/spaces-unittest.cc [modify] https://crrev.com/a0655790ae565895cbeb3986eb762021acf9ae26/test/unittests/unittests.gyp
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/2db171c2ba138443b2e177f8d31e9d2ba58c3c65 commit 2db171c2ba138443b2e177f8d31e9d2ba58c3c65 Author: mlippautz <mlippautz@chromium.org> Date: Thu Apr 06 15:20:39 2017 [heap] Fix page promotions tests Drive-by: Fix some getters. BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2798333002 Cr-Commit-Position: refs/heads/master@{#44449} [modify] https://crrev.com/2db171c2ba138443b2e177f8d31e9d2ba58c3c65/src/heap/mark-compact.h [modify] https://crrev.com/2db171c2ba138443b2e177f8d31e9d2ba58c3c65/src/heap/page-parallel-job.h [modify] https://crrev.com/2db171c2ba138443b2e177f8d31e9d2ba58c3c65/test/cctest/heap/test-page-promotion.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/d265d3a274ee5766d370f3a977cc558099fbbd66 commit d265d3a274ee5766d370f3a977cc558099fbbd66 Author: mlippautz <mlippautz@chromium.org> Date: Thu Apr 06 16:12:24 2017 [heap] Fix off-by-one cell read in verification methods The actual value was always &-ed with 0 so technically correct. ASAN rightfully complains when allocating an external bitmap though. BUG=chromium:651354 R=ulan@chromium.org Review-Url: https://codereview.chromium.org/2799283002 Cr-Commit-Position: refs/heads/master@{#44453} [modify] https://crrev.com/d265d3a274ee5766d370f3a977cc558099fbbd66/src/heap/marking.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/e863286b33d0ced9549e124eec6c7e165e866533 commit e863286b33d0ced9549e124eec6c7e165e866533 Author: mlippautz <mlippautz@chromium.org> Date: Fri Apr 21 10:06:47 2017 [heap] Allow concurrently transferring colors Adds general support for concurrent modifications to live byte counters. BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2836583002 Cr-Commit-Position: refs/heads/master@{#44767} [modify] https://crrev.com/e863286b33d0ced9549e124eec6c7e165e866533/src/heap/incremental-marking.h [modify] https://crrev.com/e863286b33d0ced9549e124eec6c7e165e866533/src/heap/mark-compact.h [modify] https://crrev.com/e863286b33d0ced9549e124eec6c7e165e866533/src/heap/spaces.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/2c9fc184743dac8627b78a5990522525f35a0007 commit 2c9fc184743dac8627b78a5990522525f35a0007 Author: mlippautz <mlippautz@chromium.org> Date: Mon Apr 24 15:04:18 2017 [heap] Refactor MC and introduce MarkCompactCollectorBase - Dispatch evacuation of a page to its concrete evacuator. - Create MC base class to accommodate shared state. BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2828323004 Cr-Commit-Position: refs/heads/master@{#44807} [modify] https://crrev.com/2c9fc184743dac8627b78a5990522525f35a0007/src/heap/heap.cc [modify] https://crrev.com/2c9fc184743dac8627b78a5990522525f35a0007/src/heap/heap.h [modify] https://crrev.com/2c9fc184743dac8627b78a5990522525f35a0007/src/heap/mark-compact.cc [modify] https://crrev.com/2c9fc184743dac8627b78a5990522525f35a0007/src/heap/mark-compact.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/8887945e90dcae78df7ead48ecb965f36d57081d commit 8887945e90dcae78df7ead48ecb965f36d57081d Author: mlippautz <mlippautz@chromium.org> Date: Tue Apr 25 14:46:30 2017 [heap] MC: Refactor page evacuation Evacuators shoud know their associated collector and thus figure out the marking state themselves. BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2840863002 Cr-Commit-Position: refs/heads/master@{#44864} [modify] https://crrev.com/8887945e90dcae78df7ead48ecb965f36d57081d/src/heap/mark-compact.cc [modify] https://crrev.com/8887945e90dcae78df7ead48ecb965f36d57081d/src/heap/mark-compact.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/e665ceba163eefa8c1ad964406c2ddb2bddb1a3a commit e665ceba163eefa8c1ad964406c2ddb2bddb1a3a Author: mlippautz <mlippautz@chromium.org> Date: Tue Apr 25 19:26:10 2017 [heap] Allow overriding recording for slots migration BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2842803002 Cr-Commit-Position: refs/heads/master@{#44866} [modify] https://crrev.com/e665ceba163eefa8c1ad964406c2ddb2bddb1a3a/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/6cc6672fde53458667b4d2ef212a4157dc76d4c1 commit 6cc6672fde53458667b4d2ef212a4157dc76d4c1 Author: mlippautz <mlippautz@chromium.org> Date: Thu Apr 27 09:23:51 2017 [heap] Verify that new space objects are in to space after evacuation BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2846683003 Cr-Commit-Position: refs/heads/master@{#44918} [modify] https://crrev.com/6cc6672fde53458667b4d2ef212a4157dc76d4c1/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/b692e8b112ade0b3d47ef0202b98e7d5269141bd commit b692e8b112ade0b3d47ef0202b98e7d5269141bd Author: mlippautz <mlippautz@chromium.org> Date: Tue May 02 10:46:17 2017 [heap] Add concept of migration observers to evacuation Currently used for observing moves for profiling. In the future this will be used to transfer colors for the minor MC too. BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2846043003 Cr-Commit-Position: refs/heads/master@{#45021} [modify] https://crrev.com/b692e8b112ade0b3d47ef0202b98e7d5269141bd/src/heap/mark-compact.cc [modify] https://crrev.com/b692e8b112ade0b3d47ef0202b98e7d5269141bd/src/heap/mark-compact.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/bf74d43de055393d97a3db4f01e4c832e35af10f commit bf74d43de055393d97a3db4f01e4c832e35af10f Author: mlippautz <mlippautz@chromium.org> Date: Wed May 03 21:31:06 2017 [heap] MinorMC: Evacuation for young generation In the spirit of the full MC, we evacuate and update pointers in parallel for the young generation. The collectors are connected during incremental marking when mark bits are transferred from the young generation bitmap to the old generation bitmap. The evacuation phase cannot (yet) move pages and relies completely on copying objects. BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2796233003 Cr-Commit-Position: refs/heads/master@{#45074} [modify] https://crrev.com/bf74d43de055393d97a3db4f01e4c832e35af10f/src/flag-definitions.h [modify] https://crrev.com/bf74d43de055393d97a3db4f01e4c832e35af10f/src/heap/gc-tracer.cc [modify] https://crrev.com/bf74d43de055393d97a3db4f01e4c832e35af10f/src/heap/gc-tracer.h [modify] https://crrev.com/bf74d43de055393d97a3db4f01e4c832e35af10f/src/heap/mark-compact.cc [modify] https://crrev.com/bf74d43de055393d97a3db4f01e4c832e35af10f/src/heap/mark-compact.h [modify] https://crrev.com/bf74d43de055393d97a3db4f01e4c832e35af10f/src/heap/spaces-inl.h [modify] https://crrev.com/bf74d43de055393d97a3db4f01e4c832e35af10f/src/heap/spaces.cc [modify] https://crrev.com/bf74d43de055393d97a3db4f01e4c832e35af10f/src/heap/spaces.h [modify] https://crrev.com/bf74d43de055393d97a3db4f01e4c832e35af10f/test/cctest/heap/test-page-promotion.cc [modify] https://crrev.com/bf74d43de055393d97a3db4f01e4c832e35af10f/test/cctest/heap/test-spaces.cc [modify] https://crrev.com/bf74d43de055393d97a3db4f01e4c832e35af10f/test/cctest/test-strings.cc [modify] https://crrev.com/bf74d43de055393d97a3db4f01e4c832e35af10f/test/unittests/heap/spaces-unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/efcdd33a316a04f0345d1a66c90f6825df3a7ad3 commit efcdd33a316a04f0345d1a66c90f6825df3a7ad3 Author: mlippautz <mlippautz@chromium.org> Date: Mon May 08 13:45:18 2017 [heap] Minor MC: Flush concurrent external memory counter BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2871543002 Cr-Commit-Position: refs/heads/master@{#45159} [modify] https://crrev.com/efcdd33a316a04f0345d1a66c90f6825df3a7ad3/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/4aa5241fe984b705a605e1f33eb643319beed6dc commit 4aa5241fe984b705a605e1f33eb643319beed6dc Author: mlippautz <mlippautz@chromium.org> Date: Tue May 09 10:09:20 2017 [heap] Factor out marking state of array buffer tracker BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2870683003 Cr-Commit-Position: refs/heads/master@{#45184} [modify] https://crrev.com/4aa5241fe984b705a605e1f33eb643319beed6dc/src/heap/array-buffer-tracker.cc [modify] https://crrev.com/4aa5241fe984b705a605e1f33eb643319beed6dc/src/heap/array-buffer-tracker.h [modify] https://crrev.com/4aa5241fe984b705a605e1f33eb643319beed6dc/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/cf37556f0e78ff522cc8a14bad3922efab991844 commit cf37556f0e78ff522cc8a14bad3922efab991844 Author: mlippautz <mlippautz@chromium.org> Date: Wed May 10 09:05:53 2017 [heap] Minor MC: Implement page moving BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2855143003 Cr-Commit-Position: refs/heads/master@{#45223} [modify] https://crrev.com/cf37556f0e78ff522cc8a14bad3922efab991844/src/heap/heap.cc [modify] https://crrev.com/cf37556f0e78ff522cc8a14bad3922efab991844/src/heap/heap.h [modify] https://crrev.com/cf37556f0e78ff522cc8a14bad3922efab991844/src/heap/incremental-marking.cc [modify] https://crrev.com/cf37556f0e78ff522cc8a14bad3922efab991844/src/heap/mark-compact.cc [modify] https://crrev.com/cf37556f0e78ff522cc8a14bad3922efab991844/src/heap/mark-compact.h [modify] https://crrev.com/cf37556f0e78ff522cc8a14bad3922efab991844/src/heap/spaces.cc [modify] https://crrev.com/cf37556f0e78ff522cc8a14bad3922efab991844/src/heap/spaces.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/f86985ad116d75255ddf78b3a4df2590543fd8cd commit f86985ad116d75255ddf78b3a4df2590543fd8cd Author: mlippautz <mlippautz@chromium.org> Date: Wed May 10 15:30:36 2017 [heap] Bound number of tasks by embedder limit instead of artificially capping BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2872063003 Cr-Commit-Position: refs/heads/master@{#45235} [modify] https://crrev.com/f86985ad116d75255ddf78b3a4df2590543fd8cd/src/heap/mark-compact.cc [modify] https://crrev.com/f86985ad116d75255ddf78b3a4df2590543fd8cd/src/heap/mark-compact.h [modify] https://crrev.com/f86985ad116d75255ddf78b3a4df2590543fd8cd/src/heap/page-parallel-job.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/4ea91a0190ab5a167791eb0e2e47d355068193a3 commit 4ea91a0190ab5a167791eb0e2e47d355068193a3 Author: mlippautz <mlippautz@chromium.org> Date: Thu May 11 08:06:59 2017 [heap] MinorMC: Only iterate new space global handles for ptr updates The reason we need this mode is that IterateRoots for the Scavenger only captures dependent weak nodes. This is also what we do for marking for the minor MC. Since the regular marking might also mark objects that are weakly (non-dependently) pointed to by nodes we need to capture all of them during pointers updating. The reason this works for the Scavenger is because we do one pass at the end of the scavenger (combined with resetting) that captures all those nodes. BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2869413002 Cr-Commit-Position: refs/heads/master@{#45248} [modify] https://crrev.com/4ea91a0190ab5a167791eb0e2e47d355068193a3/src/global-handles.cc [modify] https://crrev.com/4ea91a0190ab5a167791eb0e2e47d355068193a3/src/global-handles.h [modify] https://crrev.com/4ea91a0190ab5a167791eb0e2e47d355068193a3/src/globals.h [modify] https://crrev.com/4ea91a0190ab5a167791eb0e2e47d355068193a3/src/heap/heap.cc [modify] https://crrev.com/4ea91a0190ab5a167791eb0e2e47d355068193a3/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/ece19e99b148887b92e58f271d1abc1483d82232 commit ece19e99b148887b92e58f271d1abc1483d82232 Author: Michael Lippautz <mlippautz@chromium.org> Date: Thu May 11 13:02:56 2017 [heap] MinorMC: Use HeapVisitor instead of StaticNewSpacevisitor Bug: chromium:651354 Change-Id: I797a0eee698c9c5a6bf191fb041111c9ff5440cf Reviewed-on: https://chromium-review.googlesource.com/503227 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#45258} [modify] https://crrev.com/ece19e99b148887b92e58f271d1abc1483d82232/src/heap/mark-compact-inl.h [modify] https://crrev.com/ece19e99b148887b92e58f271d1abc1483d82232/src/heap/mark-compact.cc [modify] https://crrev.com/ece19e99b148887b92e58f271d1abc1483d82232/src/heap/mark-compact.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/b2bf0c986efaffe6b662c84502af96d04f979f94 commit b2bf0c986efaffe6b662c84502af96d04f979f94 Author: Michael Lippautz <mlippautz@chromium.org> Date: Thu May 11 17:36:16 2017 [heap] MinorMC: Update gc tracer counters Bug: chromium:651354 Change-Id: I356d551f249c9c9c785bb082412ff872639f692f Reviewed-on: https://chromium-review.googlesource.com/502813 Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#45263} [modify] https://crrev.com/b2bf0c986efaffe6b662c84502af96d04f979f94/src/heap/gc-tracer.cc [modify] https://crrev.com/b2bf0c986efaffe6b662c84502af96d04f979f94/src/heap/gc-tracer.h [modify] https://crrev.com/b2bf0c986efaffe6b662c84502af96d04f979f94/src/heap/heap.cc [modify] https://crrev.com/b2bf0c986efaffe6b662c84502af96d04f979f94/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/fc5765ce7901767ba9298241454f736c17b4f9b3 commit fc5765ce7901767ba9298241454f736c17b4f9b3 Author: Michael Lippautz <mlippautz@chromium.org> Date: Fri May 12 13:41:14 2017 [heap] Simplify PageParallelJob Remove FinalizePageSequentially as it had only a single use case that was tied to the full collector. Bug: chromium:651354 Change-Id: I03299ddbd439ea273e02dd33f12c005371694130 Reviewed-on: https://chromium-review.googlesource.com/504508 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#45280} [modify] https://crrev.com/fc5765ce7901767ba9298241454f736c17b4f9b3/src/heap/mark-compact.cc [modify] https://crrev.com/fc5765ce7901767ba9298241454f736c17b4f9b3/src/heap/mark-compact.h [modify] https://crrev.com/fc5765ce7901767ba9298241454f736c17b4f9b3/src/heap/page-parallel-job.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/6546bfe316d29a713c432dfc4aceb8ef676c099b commit 6546bfe316d29a713c432dfc4aceb8ef676c099b Author: Michael Lippautz <mlippautz@chromium.org> Date: Mon May 15 13:53:27 2017 [heap] Factor out NumberOfAvailableCores Bug: chromium:651354 Change-Id: Ie940c8715a33e5fc8e8859c4660ab14ecc6f9233 Reviewed-on: https://chromium-review.googlesource.com/505488 Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#45302} [modify] https://crrev.com/6546bfe316d29a713c432dfc4aceb8ef676c099b/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/a1de6262bf2176c4b7f55ff2d0cf63dabea945c0 commit a1de6262bf2176c4b7f55ff2d0cf63dabea945c0 Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue May 16 09:10:52 2017 [heap] MinorMC: Use different recursion strategy Only use recursion for objects with more than kMinRangeForMarkingRecursion (8) pointers. Bug: chromium:651354 Change-Id: Ic71967ef535f6a32268c7097301a313db2335bf8 Reviewed-on: https://chromium-review.googlesource.com/505615 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#45326} [modify] https://crrev.com/a1de6262bf2176c4b7f55ff2d0cf63dabea945c0/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/b02bb408ef783ee9102d9d558f6602edc311cdcb commit b02bb408ef783ee9102d9d558f6602edc311cdcb Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue May 16 21:50:56 2017 [heap] Add ItemParallelJob Adds a generic job that is based on items and tasks. Bug: chromium:651354 Change-Id: I378e04741c5761ea6c4a74816b9af8ea22867f53 Reviewed-on: https://chromium-review.googlesource.com/506075 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#45353} [modify] https://crrev.com/b02bb408ef783ee9102d9d558f6602edc311cdcb/BUILD.gn [add] https://crrev.com/b02bb408ef783ee9102d9d558f6602edc311cdcb/src/heap/item-parallel-job.h [modify] https://crrev.com/b02bb408ef783ee9102d9d558f6602edc311cdcb/src/v8.gyp [modify] https://crrev.com/b02bb408ef783ee9102d9d558f6602edc311cdcb/test/unittests/BUILD.gn [add] https://crrev.com/b02bb408ef783ee9102d9d558f6602edc311cdcb/test/unittests/heap/item-parallel-job-unittest.cc [modify] https://crrev.com/b02bb408ef783ee9102d9d558f6602edc311cdcb/test/unittests/unittests.gyp
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/15805b2d537c92b98a6c8db6a464dcefe07f4910 commit 15805b2d537c92b98a6c8db6a464dcefe07f4910 Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed May 17 08:31:04 2017 [heap] Fix ItemParallelJobTest.DistributeItemsMultipleTasks TBR=ulan@chromium.org Bug: chromium:651354 Change-Id: Ib3a53a62e048e438bc31cbfd2ea44d17fd6a3b94 Reviewed-on: https://chromium-review.googlesource.com/506204 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#45360} [modify] https://crrev.com/15805b2d537c92b98a6c8db6a464dcefe07f4910/test/unittests/heap/item-parallel-job-unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/fd530c12fd6395f4fade04f2a41422034fef5ec4 commit fd530c12fd6395f4fade04f2a41422034fef5ec4 Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed May 17 09:31:03 2017 [heap] MinorMC: Parallel marking Bug: chromium:651354 Change-Id: I9df2ca542112f04787987bda67657fc4015787b5 Reviewed-on: https://chromium-review.googlesource.com/506152 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#45363} [modify] https://crrev.com/fd530c12fd6395f4fade04f2a41422034fef5ec4/src/flag-definitions.h [modify] https://crrev.com/fd530c12fd6395f4fade04f2a41422034fef5ec4/src/heap/gc-tracer.cc [modify] https://crrev.com/fd530c12fd6395f4fade04f2a41422034fef5ec4/src/heap/gc-tracer.h [modify] https://crrev.com/fd530c12fd6395f4fade04f2a41422034fef5ec4/src/heap/mark-compact.cc [modify] https://crrev.com/fd530c12fd6395f4fade04f2a41422034fef5ec4/src/heap/mark-compact.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/17a2c6e847b11425f4a7c84e8239d39efa23c047 commit 17a2c6e847b11425f4a7c84e8239d39efa23c047 Author: Michael Lippautz <mlippautz@chromium.org> Date: Fri May 19 11:49:59 2017 [heap] Introduce WorkStealingMarkingDeque Currently only relies on private stacks of segments, i.e., doesn't steal anything, yet. Bug: chromium:651354 Change-Id: Icedad3e3169b61afe988a1ece10f73f3a973bdb2 Reviewed-on: https://chromium-review.googlesource.com/508351 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#45422} [modify] https://crrev.com/17a2c6e847b11425f4a7c84e8239d39efa23c047/BUILD.gn [modify] https://crrev.com/17a2c6e847b11425f4a7c84e8239d39efa23c047/src/heap/mark-compact.cc [modify] https://crrev.com/17a2c6e847b11425f4a7c84e8239d39efa23c047/src/heap/mark-compact.h [add] https://crrev.com/17a2c6e847b11425f4a7c84e8239d39efa23c047/src/heap/workstealing-marking-deque.h [modify] https://crrev.com/17a2c6e847b11425f4a7c84e8239d39efa23c047/src/v8.gyp [modify] https://crrev.com/17a2c6e847b11425f4a7c84e8239d39efa23c047/test/unittests/BUILD.gn [add] https://crrev.com/17a2c6e847b11425f4a7c84e8239d39efa23c047/test/unittests/heap/workstealing-marking-deque-unittest.cc [modify] https://crrev.com/17a2c6e847b11425f4a7c84e8239d39efa23c047/test/unittests/unittests.gyp
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/652c9522d3116faf9e8ba260dbc215462f380bd1 commit 652c9522d3116faf9e8ba260dbc215462f380bd1 Author: Michael Lippautz <mlippautz@chromium.org> Date: Mon May 22 13:31:41 2017 [heap] MinorMC: Identify unmodified global handles on the fly For the Scavenger we require a first pass over global handles for identifying unmodified nodes because the Scavenger might have already written forwarding pointers during scanning, making it hard to perform the proper checks. The minor MC does not mutate the object graph during marking and can thus merge this phase into the regular phase executed during marking roots. Furthermore, moves processing into the parallel marking phase of the minor MC collector. Bug: chromium:720477 , chromium:651354 Change-Id: Id33552124264e3ab0bdf34d22ac30c19c1522707 Reviewed-on: https://chromium-review.googlesource.com/509550 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#45461} [modify] https://crrev.com/652c9522d3116faf9e8ba260dbc215462f380bd1/src/global-handles.cc [modify] https://crrev.com/652c9522d3116faf9e8ba260dbc215462f380bd1/src/global-handles.h [modify] https://crrev.com/652c9522d3116faf9e8ba260dbc215462f380bd1/src/globals.h [modify] https://crrev.com/652c9522d3116faf9e8ba260dbc215462f380bd1/src/heap/gc-tracer.cc [modify] https://crrev.com/652c9522d3116faf9e8ba260dbc215462f380bd1/src/heap/gc-tracer.h [modify] https://crrev.com/652c9522d3116faf9e8ba260dbc215462f380bd1/src/heap/heap.cc [modify] https://crrev.com/652c9522d3116faf9e8ba260dbc215462f380bd1/src/heap/heap.h [modify] https://crrev.com/652c9522d3116faf9e8ba260dbc215462f380bd1/src/heap/mark-compact.cc [modify] https://crrev.com/652c9522d3116faf9e8ba260dbc215462f380bd1/src/objects.cc [modify] https://crrev.com/652c9522d3116faf9e8ba260dbc215462f380bd1/src/objects.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/1da7c49cd8123333e2cc381ef8089cb7b42e1a3a commit 1da7c49cd8123333e2cc381ef8089cb7b42e1a3a Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue May 23 09:55:27 2017 [heap] MinorMC: Cleanup dead code and reshuffle visitor allocation - Visitors are now part of the tasks. - There's one visitor extra for the main thread. Bug: chromium:651354 Change-Id: I6c1d109e9d2a2092c0f06fee5a158d101ac6bc2a Reviewed-on: https://chromium-review.googlesource.com/512302 Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#45480} [modify] https://crrev.com/1da7c49cd8123333e2cc381ef8089cb7b42e1a3a/src/heap/mark-compact.cc [modify] https://crrev.com/1da7c49cd8123333e2cc381ef8089cb7b42e1a3a/src/heap/mark-compact.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/d085eee20d0b2cf0722029e1bb3fe65e963382bf commit d085eee20d0b2cf0722029e1bb3fe65e963382bf Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue May 23 12:02:20 2017 [heap] Optimize young generation marking - Only mark a single bit (grey) - Increment live bytes after visiting, avoiding the map lookup for size in ObjectMarking Raw speed improvements should be around 20%-30%. Bug: chromium:651354 Change-Id: Ib58d1aee0b99d8e628a0191f90a2ffad9324b915 Reviewed-on: https://chromium-review.googlesource.com/509548 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#45484} [modify] https://crrev.com/d085eee20d0b2cf0722029e1bb3fe65e963382bf/src/heap/incremental-marking.cc [modify] https://crrev.com/d085eee20d0b2cf0722029e1bb3fe65e963382bf/src/heap/mark-compact.cc [modify] https://crrev.com/d085eee20d0b2cf0722029e1bb3fe65e963382bf/src/heap/mark-compact.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/36f78645a792e939750f6554e181fca5008d1136 commit 36f78645a792e939750f6554e181fca5008d1136 Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue May 23 13:17:07 2017 [heap] MinorMC: Keep live bytes local in tasks Keep the live bytes counter in a local hashmap. Merge back the counts upon task destruction. Bug: chromium:651354 Change-Id: Idd30e8fde690739d769a34e4650d8c0179fb5a75 Reviewed-on: https://chromium-review.googlesource.com/512642 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#45488} [modify] https://crrev.com/36f78645a792e939750f6554e181fca5008d1136/src/heap/mark-compact.cc [modify] https://crrev.com/36f78645a792e939750f6554e181fca5008d1136/src/heap/spaces.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/611ec69d85c44b1ff1616f1aa60c3de83b56e69d commit 611ec69d85c44b1ff1616f1aa60c3de83b56e69d Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue May 23 16:45:37 2017 [heap] Micro optimizations for almost empty heaps Bug: chromium:651354 Change-Id: If2a67a7166e412affad7e71eb06087cc1478892c Reviewed-on: https://chromium-review.googlesource.com/512825 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#45494} [modify] https://crrev.com/611ec69d85c44b1ff1616f1aa60c3de83b56e69d/src/heap/mark-compact.cc [modify] https://crrev.com/611ec69d85c44b1ff1616f1aa60c3de83b56e69d/src/heap/spaces.cc [modify] https://crrev.com/611ec69d85c44b1ff1616f1aa60c3de83b56e69d/src/heap/spaces.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/2c5ca0272423900cbfc7f571aa46be0ee6d54bf8 commit 2c5ca0272423900cbfc7f571aa46be0ee6d54bf8 Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed May 24 10:39:21 2017 [heap] MinorMC: Fix race when flushing back live bytes NOTRY=true TBR=hpayer@chromium.org Bug: chromium:651354 Change-Id: Ibff438d987b07907b2c4463a42bef685864c1602 Reviewed-on: https://chromium-review.googlesource.com/513903 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#45505} [modify] https://crrev.com/2c5ca0272423900cbfc7f571aa46be0ee6d54bf8/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/bce2a50de69a3982972643ddfaec633ceb5ed32b commit bce2a50de69a3982972643ddfaec633ceb5ed32b Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed May 24 13:53:29 2017 [heap] Unify computation of parallel tasks - Create getters for number of tasks for all parallel stages - Count slots for the minor MC and limit tasks by the overall number of slots. - Cleanup existing getters. Bug: chromium:651354 Change-Id: I9f67cca4474cbe1800faff4a549fbec019b096ce Reviewed-on: https://chromium-review.googlesource.com/512862 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#45513} [modify] https://crrev.com/bce2a50de69a3982972643ddfaec633ceb5ed32b/src/heap/mark-compact.cc [modify] https://crrev.com/bce2a50de69a3982972643ddfaec633ceb5ed32b/src/heap/mark-compact.h [modify] https://crrev.com/bce2a50de69a3982972643ddfaec633ceb5ed32b/src/heap/workstealing-marking-deque.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/3fc2c27568fd7f3cf78f9dd074e23af7dd49d3cb commit 3fc2c27568fd7f3cf78f9dd074e23af7dd49d3cb Author: Michael Lippautz <mlippautz@chromium.org> Date: Fri Jun 02 13:10:08 2017 [heap] MinorMC: Fix page promotion during incremental marking During incremental marking we need to clear to old generation mark bits for promoted pages. Bug: chromium:651354 Change-Id: I986de08d6a123b2eff3dd7824729cc1cfe29aeba Reviewed-on: https://chromium-review.googlesource.com/522665 Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#45683} [modify] https://crrev.com/3fc2c27568fd7f3cf78f9dd074e23af7dd49d3cb/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/70f428bd65d14f2204e4452e61c8a9725b60bde6 commit 70f428bd65d14f2204e4452e61c8a9725b60bde6 Author: Michael Lippautz <mlippautz@chromium.org> Date: Fri Jun 02 14:46:47 2017 [heap] MinorMC: Avoid clearing mark bits for promoted pages We need to keep the new space mark bits as they are still required for pointer updating. TBR=hpayer@chromium.org NOTRY=true Bug: chromium:651354 Change-Id: Idc85f08a3b6525dd1ca932585f5e696a22b12808 Reviewed-on: https://chromium-review.googlesource.com/522609 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#45690} [modify] https://crrev.com/70f428bd65d14f2204e4452e61c8a9725b60bde6/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/ee35abf12598c8f2a6fdc01b393544088dfd9a78 commit ee35abf12598c8f2a6fdc01b393544088dfd9a78 Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed Jun 21 12:20:14 2017 [heap] Build proper iterator for iterating live objects - Iterator advancing is kept mainly unchanged. - The iterator stores the size of the object which is to be used by the caller in follow ups. This way we might be able to avoid further out of line loads. - The iteartor follows the regular std conventions allowing range based loops. Bug: chromium:651354 Change-Id: I8928224a62d3a48a48145a2d00279a28608bc634 Reviewed-on: https://chromium-review.googlesource.com/543335 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46085} [modify] https://crrev.com/ee35abf12598c8f2a6fdc01b393544088dfd9a78/src/heap/mark-compact-inl.h [modify] https://crrev.com/ee35abf12598c8f2a6fdc01b393544088dfd9a78/src/heap/mark-compact.cc [modify] https://crrev.com/ee35abf12598c8f2a6fdc01b393544088dfd9a78/src/heap/mark-compact.h [modify] https://crrev.com/ee35abf12598c8f2a6fdc01b393544088dfd9a78/test/cctest/heap/test-mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/d03768b008e36cf12f2c1940c03db3231648dd11 commit d03768b008e36cf12f2c1940c03db3231648dd11 Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed Jun 21 13:30:40 2017 [heap] Avoid repeated loads of object size The iterator already provides the size. Bug: chromium:651354 Change-Id: I683bfe5c82441bf39c21b18daa58eba91b798c64 Reviewed-on: https://chromium-review.googlesource.com/543495 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46092} [modify] https://crrev.com/d03768b008e36cf12f2c1940c03db3231648dd11/src/heap/heap-inl.h [modify] https://crrev.com/d03768b008e36cf12f2c1940c03db3231648dd11/src/heap/heap.h [modify] https://crrev.com/d03768b008e36cf12f2c1940c03db3231648dd11/src/heap/mark-compact.cc [modify] https://crrev.com/d03768b008e36cf12f2c1940c03db3231648dd11/src/heap/scavenger.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/baf954759bd36926bc2136a505d302a5d0fddd0a commit baf954759bd36926bc2136a505d302a5d0fddd0a Author: Michael Lippautz <mlippautz@chromium.org> Date: Thu Jun 22 09:05:30 2017 [heap] Implement workstealing bag based on segments Bug: chromium:651354 Change-Id: I8aa122f48986f494146d4e896b254846de7ce295 Reviewed-on: https://chromium-review.googlesource.com/543500 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46119} [modify] https://crrev.com/baf954759bd36926bc2136a505d302a5d0fddd0a/BUILD.gn [modify] https://crrev.com/baf954759bd36926bc2136a505d302a5d0fddd0a/src/heap/mark-compact.cc [modify] https://crrev.com/baf954759bd36926bc2136a505d302a5d0fddd0a/src/heap/mark-compact.h [add] https://crrev.com/baf954759bd36926bc2136a505d302a5d0fddd0a/src/heap/workstealing-bag.h [delete] https://crrev.com/c4852ea94c9b30bdca647cb53650931894233fe9/src/heap/workstealing-marking-deque.h [modify] https://crrev.com/baf954759bd36926bc2136a505d302a5d0fddd0a/src/v8.gyp [modify] https://crrev.com/baf954759bd36926bc2136a505d302a5d0fddd0a/test/unittests/BUILD.gn [add] https://crrev.com/baf954759bd36926bc2136a505d302a5d0fddd0a/test/unittests/heap/workstealing-bag-unittest.cc [delete] https://crrev.com/c4852ea94c9b30bdca647cb53650931894233fe9/test/unittests/heap/workstealing-marking-deque-unittest.cc [modify] https://crrev.com/baf954759bd36926bc2136a505d302a5d0fddd0a/test/unittests/unittests.gyp
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/14d85ce89c4d2d9d92f2380c0407b41fa0cd178c commit 14d85ce89c4d2d9d92f2380c0407b41fa0cd178c Author: Michael Lippautz <mlippautz@chromium.org> Date: Fri Jun 23 08:57:09 2017 [heap] Switch evacuation to ItemParallelJob Remove PageParallelJob as it is completely replaced now. It served us well. Bug: chromium:651354 Change-Id: I620fa7bb0dcaf7cd3710492913c501bcb162c781 Reviewed-on: https://chromium-review.googlesource.com/544950 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#46159} [modify] https://crrev.com/14d85ce89c4d2d9d92f2380c0407b41fa0cd178c/BUILD.gn [modify] https://crrev.com/14d85ce89c4d2d9d92f2380c0407b41fa0cd178c/src/heap/item-parallel-job.h [modify] https://crrev.com/14d85ce89c4d2d9d92f2380c0407b41fa0cd178c/src/heap/mark-compact.cc [modify] https://crrev.com/14d85ce89c4d2d9d92f2380c0407b41fa0cd178c/src/heap/mark-compact.h [delete] https://crrev.com/07b1113252bd487aa20d6459e03d125edf6d5e47/src/heap/page-parallel-job.h [modify] https://crrev.com/14d85ce89c4d2d9d92f2380c0407b41fa0cd178c/src/v8.gyp
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/b45f20665173fb89310f6b97c53d4650eecb7d7a commit b45f20665173fb89310f6b97c53d4650eecb7d7a Author: Michael Lippautz <mlippautz@chromium.org> Date: Fri Jun 23 09:35:29 2017 [heap] MinorMC: Reuse NewSpaceVisitor for marking Completely shares first-level visitation with the Scavenger. Remove marking recursively on the way as we cannot reliable check for stack overflow on background tasks. Bug: chromium:651354 Change-Id: I6da1dc787cdfb4232ea4b6cb8e72e0f736cabf10 Reviewed-on: https://chromium-review.googlesource.com/544967 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46162} [modify] https://crrev.com/b45f20665173fb89310f6b97c53d4650eecb7d7a/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/3c04ee6d4e8bdfb08f5fc6c213bb8226fc1cc40c commit 3c04ee6d4e8bdfb08f5fc6c213bb8226fc1cc40c Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue Jun 27 11:17:25 2017 [heap] Make aborting compaction a fatal Last attempt failed because of too agressive growing and no proper GC scheduling. Also refactor live object iteration on the way to avoid a branch when we know that we will succeed. Bug: chromium:651354 Change-Id: I8f52cbc79ac293989fb7c29c492d4ae4afe5ebe4 Reviewed-on: https://chromium-review.googlesource.com/544829 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46245} [modify] https://crrev.com/3c04ee6d4e8bdfb08f5fc6c213bb8226fc1cc40c/src/flag-definitions.h [modify] https://crrev.com/3c04ee6d4e8bdfb08f5fc6c213bb8226fc1cc40c/src/heap/mark-compact.cc [modify] https://crrev.com/3c04ee6d4e8bdfb08f5fc6c213bb8226fc1cc40c/src/heap/mark-compact.h [modify] https://crrev.com/3c04ee6d4e8bdfb08f5fc6c213bb8226fc1cc40c/test/cctest/heap/test-compaction.cc [modify] https://crrev.com/3c04ee6d4e8bdfb08f5fc6c213bb8226fc1cc40c/test/cctest/heap/test-heap.cc [modify] https://crrev.com/3c04ee6d4e8bdfb08f5fc6c213bb8226fc1cc40c/test/cctest/test-api.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/7dea0f7b38754c97d94f4013fcb6544be6b57216 commit 7dea0f7b38754c97d94f4013fcb6544be6b57216 Author: Michael Achenbach <machenbach@chromium.org> Date: Tue Jun 27 11:40:28 2017 Revert "[heap] Make aborting compaction a fatal" This reverts commit 3c04ee6d4e8bdfb08f5fc6c213bb8226fc1cc40c. Reason for revert: Speculative revert for OOMs in: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20shared/builds/18563 Original change's description: > [heap] Make aborting compaction a fatal > > Last attempt failed because of too agressive growing and no proper GC > scheduling. > > Also refactor live object iteration on the way to avoid a branch when we > know that we will succeed. > > Bug: chromium:651354 > Change-Id: I8f52cbc79ac293989fb7c29c492d4ae4afe5ebe4 > Reviewed-on: https://chromium-review.googlesource.com/544829 > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#46245} TBR=ulan@chromium.org,mlippautz@chromium.org Change-Id: Ifb9fd0c873c4ec6d4bd895f2978849cc2a223a05 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:651354 Reviewed-on: https://chromium-review.googlesource.com/549324 Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#46247} [modify] https://crrev.com/7dea0f7b38754c97d94f4013fcb6544be6b57216/src/flag-definitions.h [modify] https://crrev.com/7dea0f7b38754c97d94f4013fcb6544be6b57216/src/heap/mark-compact.cc [modify] https://crrev.com/7dea0f7b38754c97d94f4013fcb6544be6b57216/src/heap/mark-compact.h [modify] https://crrev.com/7dea0f7b38754c97d94f4013fcb6544be6b57216/test/cctest/heap/test-compaction.cc [modify] https://crrev.com/7dea0f7b38754c97d94f4013fcb6544be6b57216/test/cctest/heap/test-heap.cc [modify] https://crrev.com/7dea0f7b38754c97d94f4013fcb6544be6b57216/test/cctest/test-api.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/ab028038dbaa1a01b590f3ce46243c01c7203cd5 commit ab028038dbaa1a01b590f3ce46243c01c7203cd5 Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue Jun 27 14:21:04 2017 [heap] Refactor live object visitation - Restructure the methods that are not allowed to fail to avoid a branch. - Undo compaction changes for the reland as they require further investigation This reverts commit 7dea0f7b38754c97d94f4013fcb6544be6b57216. Bug: chromium:651354 Change-Id: I93e8601bcdec534f41f8e27fd83848f8ef0f1244 Reviewed-on: https://chromium-review.googlesource.com/549462 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46259} [modify] https://crrev.com/ab028038dbaa1a01b590f3ce46243c01c7203cd5/src/heap/mark-compact.cc [modify] https://crrev.com/ab028038dbaa1a01b590f3ce46243c01c7203cd5/src/heap/mark-compact.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/4260f6055fdf956fb3c0c09ff7bc571e25c018d8 commit 4260f6055fdf956fb3c0c09ff7bc571e25c018d8 Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed Jun 28 07:07:08 2017 [heap] Move ArrayBufferTracker updating to pointers updating Bug: chromium:651354 Change-Id: I2c318dd3cb0885fd8186d4c13a91840498a217b2 Reviewed-on: https://chromium-review.googlesource.com/550097 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46269} [modify] https://crrev.com/4260f6055fdf956fb3c0c09ff7bc571e25c018d8/src/heap/mark-compact.cc [modify] https://crrev.com/4260f6055fdf956fb3c0c09ff7bc571e25c018d8/src/heap/mark-compact.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/ecd8d2c2336a0a83be4e4391d4ee6bbf03375bf0 commit ecd8d2c2336a0a83be4e4391d4ee6bbf03375bf0 Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed Jun 28 09:26:08 2017 Revert "[heap] Move ArrayBufferTracker updating to pointers updating" This reverts commit 4260f6055fdf956fb3c0c09ff7bc571e25c018d8. Reason for revert: Speculative revert for https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20ASAN Original change's description: > [heap] Move ArrayBufferTracker updating to pointers updating > > Bug: chromium:651354 > Change-Id: I2c318dd3cb0885fd8186d4c13a91840498a217b2 > Reviewed-on: https://chromium-review.googlesource.com/550097 > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#46269} TBR=ulan@chromium.org,mlippautz@chromium.org Change-Id: Ie5b828f909e140bf5b4b17353999d598e6367622 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:651354 Reviewed-on: https://chromium-review.googlesource.com/552177 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#46274} [modify] https://crrev.com/ecd8d2c2336a0a83be4e4391d4ee6bbf03375bf0/src/heap/mark-compact.cc [modify] https://crrev.com/ecd8d2c2336a0a83be4e4391d4ee6bbf03375bf0/src/heap/mark-compact.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/bd808e7a3b9e65cb5925d87f2926ff4c34ff0827 commit bd808e7a3b9e65cb5925d87f2926ff4c34ff0827 Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed Jun 28 14:46:37 2017 Reland "[heap] Move ArrayBufferTracker updating to pointers updating" This reverts commit ecd8d2c2336a0a83be4e4391d4ee6bbf03375bf0. Bug: chromium:651354 Change-Id: I744ef9104cf9d56b8ce6d814f5abda152b0743b0 Reviewed-on: https://chromium-review.googlesource.com/552147 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#46291} [modify] https://crrev.com/bd808e7a3b9e65cb5925d87f2926ff4c34ff0827/src/heap/array-buffer-tracker.cc [modify] https://crrev.com/bd808e7a3b9e65cb5925d87f2926ff4c34ff0827/src/heap/mark-compact.cc [modify] https://crrev.com/bd808e7a3b9e65cb5925d87f2926ff4c34ff0827/src/heap/mark-compact.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/5157325bae7e6dda279f453a8f4d741c54b746ce commit 5157325bae7e6dda279f453a8f4d741c54b746ce Author: Michael Lippautz <mlippautz@chromium.org> Date: Thu Jun 29 13:10:32 2017 [heap] Fixes for Bitmap Bug: chromium:651354 Change-Id: Ib384ca2d386421a0a466ef318b278f8fc677cdb2 Reviewed-on: https://chromium-review.googlesource.com/555172 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#46320} [modify] https://crrev.com/5157325bae7e6dda279f453a8f4d741c54b746ce/src/heap/mark-compact.h [modify] https://crrev.com/5157325bae7e6dda279f453a8f4d741c54b746ce/src/heap/marking.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/776721396a70400816ac614346660040a8228b01 commit 776721396a70400816ac614346660040a8228b01 Author: Michael Lippautz <mlippautz@chromium.org> Date: Thu Nov 30 12:37:19 2017 [heap] Minor MC: Fix task computation No-try: true Bug: chromium:651354, chromium:788113 Change-Id: I8955b322b826c0a59f85c32bb2c1ec8c9d4e0761 Reviewed-on: https://chromium-review.googlesource.com/800330 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#49748} [modify] https://crrev.com/776721396a70400816ac614346660040a8228b01/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/9ac877fa77a07e1918ed84c5d51af6b6f10626b4 commit 9ac877fa77a07e1918ed84c5d51af6b6f10626b4 Author: Michael Lippautz <mlippautz@chromium.org> Date: Thu Nov 30 13:03:09 2017 [heap] Minor MC: Free and prefree empty remembered set buckets No-try: true Bug: chromium:651354, chromium:788113 Change-Id: Iff2051751c4688c307e8f23ddd08de203974e842 Reviewed-on: https://chromium-review.googlesource.com/800272 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#49751} [modify] https://crrev.com/9ac877fa77a07e1918ed84c5d51af6b6f10626b4/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/6b29f1cf281336f5ea62da2f2f5438ca215576f3 commit 6b29f1cf281336f5ea62da2f2f5438ca215576f3 Author: Michael Lippautz <mlippautz@chromium.org> Date: Thu Nov 30 13:13:29 2017 [heap] Minor MC: Support ThinString No-try: true Bug: chromium:651354, chromium:788113 Change-Id: I53cc2f04974671982371d1c26c71bd559450a5aa Reviewed-on: https://chromium-review.googlesource.com/800176 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#49752} [modify] https://crrev.com/6b29f1cf281336f5ea62da2f2f5438ca215576f3/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/b4d2f3eb991fd11126ac840c5db16e8a3789546c commit b4d2f3eb991fd11126ac840c5db16e8a3789546c Author: Jakob Gruber <jgruber@chromium.org> Date: Thu Nov 30 13:42:24 2017 Revert "[heap] Minor MC: Support ThinString" This reverts commit 6b29f1cf281336f5ea62da2f2f5438ca215576f3. Reason for revert: https://build.chromium.org/p/client.v8/builders/V8%20Linux64/builds/21671 Original change's description: > [heap] Minor MC: Support ThinString > > No-try: true > Bug: chromium:651354, chromium:788113 > Change-Id: I53cc2f04974671982371d1c26c71bd559450a5aa > Reviewed-on: https://chromium-review.googlesource.com/800176 > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49752} TBR=ulan@chromium.org,hpayer@chromium.org,mlippautz@chromium.org Change-Id: I6268c5c090377cb97a3e8cdf1bb4b19b3c6876da No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:651354, chromium:788113 Reviewed-on: https://chromium-review.googlesource.com/800610 Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#49754} [modify] https://crrev.com/b4d2f3eb991fd11126ac840c5db16e8a3789546c/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/bbd9e4a76b0f653607912fa448476d5626b45af0 commit bbd9e4a76b0f653607912fa448476d5626b45af0 Author: Michael Achenbach <machenbach@chromium.org> Date: Thu Nov 30 13:43:29 2017 Revert "[heap] Minor MC: Support ThinString" This reverts commit 6b29f1cf281336f5ea62da2f2f5438ca215576f3. Reason for revert: Breaks many bots. Please no notry: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20verify%20csa/builds/4512 Original change's description: > [heap] Minor MC: Support ThinString > > No-try: true > Bug: chromium:651354, chromium:788113 > Change-Id: I53cc2f04974671982371d1c26c71bd559450a5aa > Reviewed-on: https://chromium-review.googlesource.com/800176 > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49752} TBR=ulan@chromium.org,hpayer@chromium.org,mlippautz@chromium.org Change-Id: I0a5f47f144ae9c8d2ba279243124fa10ec99e165 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:651354, chromium:788113 Reviewed-on: https://chromium-review.googlesource.com/800491 Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#49755}
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/9fbbe2a4743c11c2df7aca3425ed419aa4fb0dcc commit 9fbbe2a4743c11c2df7aca3425ed419aa4fb0dcc Author: Michael Lippautz <mlippautz@chromium.org> Date: Thu Nov 30 16:40:59 2017 [heap] Full MC/Minor MC: Add support for ThinString This reverts commit b4d2f3eb991fd11126ac840c5db16e8a3789546c. Bug: chromium:651354, chromium:788113 Change-Id: I04b7541e7eb69f737d45e90bbfec591cf8f8190f Reviewed-on: https://chromium-review.googlesource.com/800552 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#49765} [modify] https://crrev.com/9fbbe2a4743c11c2df7aca3425ed419aa4fb0dcc/src/heap/mark-compact.cc [modify] https://crrev.com/9fbbe2a4743c11c2df7aca3425ed419aa4fb0dcc/src/objects/string-inl.h [modify] https://crrev.com/9fbbe2a4743c11c2df7aca3425ed419aa4fb0dcc/src/objects/string.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/3c778f559cab3465bd603c5835004a08d88f7932 commit 3c778f559cab3465bd603c5835004a08d88f7932 Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed Dec 06 09:35:18 2017 [heap] Minor MC: Allow modifying code Similar to the Scavenger, the Minor MC updates typed pointers into the young generation and thus requires priviliges to write to code space. Bug: chromium:651354 Change-Id: If5ce600f651ccb04b6ac3d82e6c2e311bfd7dc4d Reviewed-on: https://chromium-review.googlesource.com/809013 Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#49884} [modify] https://crrev.com/3c778f559cab3465bd603c5835004a08d88f7932/src/heap/heap.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/3d11bf77115d95892e2548502f08db1ac38b6318 commit 3d11bf77115d95892e2548502f08db1ac38b6318 Author: Gabriel Charette <gab@chromium.org> Date: Tue Feb 06 15:42:17 2018 Highlight individual work items in tracing of parallel GC. This merely re-uses the same ScopeId as the task. Tracing shows these as a nested layer with the same name. This is not the cleanest way to do this but it makes the trace clearer for a minimal diff. R=mlippautz@chromium.org Bug: chromium:651354 Change-Id: Ib30ec7d04a30657a63a49aba9698cacd9af950d3 Reviewed-on: https://chromium-review.googlesource.com/904164 Commit-Queue: Gabriel Charette <gab@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#51120} [modify] https://crrev.com/3d11bf77115d95892e2548502f08db1ac38b6318/src/heap/heap.cc [modify] https://crrev.com/3d11bf77115d95892e2548502f08db1ac38b6318/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/7d58b3c46c44601afbc61681f2c43f7a48d5f7c9 commit 7d58b3c46c44601afbc61681f2c43f7a48d5f7c9 Author: Gabriel Charette <gab@chromium.org> Date: Tue Feb 06 21:55:49 2018 Isolate ItemParallelJob implementation in CC file. This CL is a pure code move based on top of https://chromium-review.googlesource.com/c/v8/v8/+/899365 Having it all in the header was becoming more and more tedious: requiring large rebuilds for impl changes and requiring exporting unrelated symbols merely so that unittests could link @ https://chromium-review.googlesource.com/c/v8/v8/+/899365 and https://chromium-review.googlesource.com/c/v8/v8/+/904523/2 R=mlippautz@chromium.org Bug: chromium:651354 Change-Id: Ib34043d061dd3b1221cd06799eddc888090fe1c1 Reviewed-on: https://chromium-review.googlesource.com/904167 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Gabriel Charette <gab@chromium.org> Cr-Commit-Position: refs/heads/master@{#51132} [modify] https://crrev.com/7d58b3c46c44601afbc61681f2c43f7a48d5f7c9/BUILD.gn [modify] https://crrev.com/7d58b3c46c44601afbc61681f2c43f7a48d5f7c9/gypfiles/v8.gyp [modify] https://crrev.com/7d58b3c46c44601afbc61681f2c43f7a48d5f7c9/src/counters.h [add] https://crrev.com/7d58b3c46c44601afbc61681f2c43f7a48d5f7c9/src/heap/item-parallel-job.cc [modify] https://crrev.com/7d58b3c46c44601afbc61681f2c43f7a48d5f7c9/src/heap/item-parallel-job.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/384a5223b710bc23627885e2540c7efd0438c2fa commit 384a5223b710bc23627885e2540c7efd0438c2fa Author: Gabriel Charette <gab@chromium.org> Date: Tue Feb 06 22:02:19 2018 [v8::ItemParallelJob] Add an instant trace event to log num_tasks/num_items for ease of trace diagnosis. R=mlippautz@chromium.org Bug: chromium:651354 Change-Id: I5762813f6bd7b3c549f22ee8e43c59ca9edbe915 Reviewed-on: https://chromium-review.googlesource.com/904523 Commit-Queue: Gabriel Charette <gab@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#51133} [modify] https://crrev.com/384a5223b710bc23627885e2540c7efd0438c2fa/src/heap/item-parallel-job.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/903144f3c17a26b91392a12e7dcd5251a7d7c0c0 commit 903144f3c17a26b91392a12e7dcd5251a7d7c0c0 Author: Gabriel Charette <gab@chromium.org> Date: Sun Feb 25 08:29:28 2018 Add clear trace events per ItemParallelJob::Items instead of reusing their top-level category. This is a follow-up to https://chromium-review.googlesource.com/904164 now that I've realized raw TRACE_EVENTs work in v8 (initially thought had to go through heap()->tracer()). After adding events to EvacuatePage(), the subitem event for evacuation tasks became redundant. Since this results in a better output this CL applies this approach to all paralell work items. Not using TRACE_BACKGROUND_GC also avoids polluting logs with subitems when using v8's tracing flags. R=mlippautz@chromium.org Bug: chromium:651354 Change-Id: I62efbde69da2a0a9bd255e34093d64924e339974 Reviewed-on: https://chromium-review.googlesource.com/934263 Commit-Queue: Gabriel Charette <gab@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#51544} [modify] https://crrev.com/903144f3c17a26b91392a12e7dcd5251a7d7c0c0/src/heap/heap.cc [modify] https://crrev.com/903144f3c17a26b91392a12e7dcd5251a7d7c0c0/src/heap/mark-compact.cc [modify] https://crrev.com/903144f3c17a26b91392a12e7dcd5251a7d7c0c0/src/heap/scavenger.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/0bf9c60c095fd7b5a3946874ea4133aac7115be9 commit 0bf9c60c095fd7b5a3946874ea4133aac7115be9 Author: Ulan Degenbaev <ulan@chromium.org> Date: Fri May 11 13:06:25 2018 [heap] Unprotect code pages on demand in MinorMC This reduces average pause of MinorMC in Richards benchmark from 0.32ms to 0.25ms: baseline pause len: 22 min: 0.3 max: 0.6 avg: 0.322727272727 [0,5[: 22 pause len: 22 min: 0.2 max: 0.7 avg: 0.254545454545 [0,5[: 22 Bug: chromium:651354 Change-Id: I701ca800d7c6986534d1de2e3051476e91a88d7d Reviewed-on: https://chromium-review.googlesource.com/1055507 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#53125} [modify] https://crrev.com/0bf9c60c095fd7b5a3946874ea4133aac7115be9/src/heap/heap.cc [modify] https://crrev.com/0bf9c60c095fd7b5a3946874ea4133aac7115be9/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/be2f237d856ad43c3a8fe0541bf3c65e127472bb commit be2f237d856ad43c3a8fe0541bf3c65e127472bb Author: Ulan Degenbaev <ulan@chromium.org> Date: Fri May 11 13:43:56 2018 Revert "[heap] Unprotect code pages on demand in MinorMC" This reverts commit 0bf9c60c095fd7b5a3946874ea4133aac7115be9. Reason for revert: breaks minor_mc bot Original change's description: > [heap] Unprotect code pages on demand in MinorMC > > This reduces average pause of MinorMC in Richards benchmark from 0.32ms > to 0.25ms: > > baseline pause > len: 22 > min: 0.3 > max: 0.6 > avg: 0.322727272727 > [0,5[: 22 > > pause > len: 22 > min: 0.2 > max: 0.7 > avg: 0.254545454545 > [0,5[: 22 > > Bug: chromium:651354 > Change-Id: I701ca800d7c6986534d1de2e3051476e91a88d7d > Reviewed-on: https://chromium-review.googlesource.com/1055507 > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Commit-Queue: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#53125} TBR=ulan@chromium.org,hpayer@chromium.org,mlippautz@chromium.org Change-Id: Ib227e37fa60d608f94c3111a9b431baf0f488790 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:651354 Reviewed-on: https://chromium-review.googlesource.com/1053970 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#53127} [modify] https://crrev.com/be2f237d856ad43c3a8fe0541bf3c65e127472bb/src/heap/heap.cc [modify] https://crrev.com/be2f237d856ad43c3a8fe0541bf3c65e127472bb/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/dc1906a71dbd9df67031f29eff01875a8e6391e5 commit dc1906a71dbd9df67031f29eff01875a8e6391e5 Author: Ulan Degenbaev <ulan@chromium.org> Date: Fri May 11 14:12:15 2018 [heap] Optimize root visitor of MinorMC The root visitor now collects marked roots in the marking worklist and filters out objects that are not in the new space. This reduces average marking time in MinorMC in Richards from 0.08ms to 0.04ms: baseline mark: len: 22 min: 0.07 max: 0.18 avg: 0.0809090909091 [0,5[: 22 mark len: 22 min: 0.03 max: 0.13 avg: 0.0409090909091 [0,5[: 22 Bug: chromium:651354 Change-Id: I979e2f5ba331f88029b69bab23978f7fcadb7024 Reviewed-on: https://chromium-review.googlesource.com/1055490 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#53128} [modify] https://crrev.com/dc1906a71dbd9df67031f29eff01875a8e6391e5/src/heap/mark-compact-inl.h [modify] https://crrev.com/dc1906a71dbd9df67031f29eff01875a8e6391e5/src/heap/mark-compact.cc [modify] https://crrev.com/dc1906a71dbd9df67031f29eff01875a8e6391e5/src/heap/mark-compact.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/97ddfc3e3d486424c05ab4026741f132e55555d1 commit 97ddfc3e3d486424c05ab4026741f132e55555d1 Author: Ulan Degenbaev <ulan@chromium.org> Date: Fri May 11 14:48:56 2018 Reland "[heap] Unprotect code pages on demand in MinorMC" This reverts commit be2f237d856ad43c3a8fe0541bf3c65e127472bb. Original change's description: > [heap] Unprotect code pages on demand in MinorMC > > This reduces average pause of MinorMC in Richards benchmark from 0.32ms > to 0.25ms: > > baseline pause > len: 22 > min: 0.3 > max: 0.6 > avg: 0.322727272727 > [0,5[: 22 > > pause > len: 22 > min: 0.2 > max: 0.7 > avg: 0.254545454545 > [0,5[: 22 > > Bug: chromium:651354 Change-Id: I9d70037dda612528368fb1ba330dc6f6510a14a6 Reviewed-on: https://chromium-review.googlesource.com/1055450 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#53129} [modify] https://crrev.com/97ddfc3e3d486424c05ab4026741f132e55555d1/src/heap/heap.cc [modify] https://crrev.com/97ddfc3e3d486424c05ab4026741f132e55555d1/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/b595b89c3675a0a19b9ad32b883644a8e33cae9c commit b595b89c3675a0a19b9ad32b883644a8e33cae9c Author: Sergiy Byelozyorov <sergiyb@chromium.org> Date: Wed May 16 13:52:45 2018 [tools] Add minor_mc test variant to the V8 CQ R=machenbach@chromium.org Bug: chromium:651354 Change-Id: I9ce5c6dc6a155ff9a70713cbdbf2d4037ad47f24 Reviewed-on: https://chromium-review.googlesource.com/1053773 Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#53214} [modify] https://crrev.com/b595b89c3675a0a19b9ad32b883644a8e33cae9c/infra/testing/builders.pyl