Tracking bug for unifying garbage collection between Blink and V8.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/9eb3d29a378f490c9b25da5939fdf5ff52f27cae commit 9eb3d29a378f490c9b25da5939fdf5ff52f27cae Author: Michael Lippautz <mlippautz@chromium.org> Date: Mon Sep 03 18:52:02 2018 Unified heap garbage collection Add a unified garbage collection that replaces wrapper tracing with a full marking pass across both V8 and Blink. The garbage collection is implemented behind the flag 'HeapUnifiedGarbageCollection'. Unified heap garbage collections are triggered by V8 and mark the full transitive closure of V8 and Blink (Oilpan) objects. The garbage collection is initially triggered by V8. Both collecters report live references using the EmbedderHeapTracer APIs. V8 and Blink both run separate incremental marking steps to compute their live closures, respectively. The final atomic pause is then initiated by V8 and triggers a fixed-point computation between V8 and Blink where both GCs report live references to each other and drain their marking work lists until they are empty and no new references are found. Bug: chromium:843903 Change-Id: I5968ba782a37b29604748793645910fa4c5129cf Reviewed-on: https://chromium-review.googlesource.com/1133166 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Cr-Commit-Position: refs/heads/master@{#588426} [modify] https://crrev.com/9eb3d29a378f490c9b25da5939fdf5ff52f27cae/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc [modify] https://crrev.com/9eb3d29a378f490c9b25da5939fdf5ff52f27cae/third_party/blink/renderer/platform/bindings/dom_data_store.h [modify] https://crrev.com/9eb3d29a378f490c9b25da5939fdf5ff52f27cae/third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h [modify] https://crrev.com/9eb3d29a378f490c9b25da5939fdf5ff52f27cae/third_party/blink/renderer/platform/bindings/v8_dom_wrapper.h [modify] https://crrev.com/9eb3d29a378f490c9b25da5939fdf5ff52f27cae/third_party/blink/renderer/platform/bindings/v8_per_isolate_data.cc [modify] https://crrev.com/9eb3d29a378f490c9b25da5939fdf5ff52f27cae/third_party/blink/renderer/platform/bindings/v8_per_isolate_data.h [modify] https://crrev.com/9eb3d29a378f490c9b25da5939fdf5ff52f27cae/third_party/blink/renderer/platform/heap/BUILD.gn [modify] https://crrev.com/9eb3d29a378f490c9b25da5939fdf5ff52f27cae/third_party/blink/renderer/platform/heap/blink_gc.h [modify] https://crrev.com/9eb3d29a378f490c9b25da5939fdf5ff52f27cae/third_party/blink/renderer/platform/heap/marking_visitor.h [modify] https://crrev.com/9eb3d29a378f490c9b25da5939fdf5ff52f27cae/third_party/blink/renderer/platform/heap/thread_state.cc [modify] https://crrev.com/9eb3d29a378f490c9b25da5939fdf5ff52f27cae/third_party/blink/renderer/platform/heap/thread_state.h [add] https://crrev.com/9eb3d29a378f490c9b25da5939fdf5ff52f27cae/third_party/blink/renderer/platform/heap/unified_heap_controller.cc [add] https://crrev.com/9eb3d29a378f490c9b25da5939fdf5ff52f27cae/third_party/blink/renderer/platform/heap/unified_heap_controller.h [add] https://crrev.com/9eb3d29a378f490c9b25da5939fdf5ff52f27cae/third_party/blink/renderer/platform/heap/unified_heap_marking_visitor.cc [add] https://crrev.com/9eb3d29a378f490c9b25da5939fdf5ff52f27cae/third_party/blink/renderer/platform/heap/unified_heap_marking_visitor.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3ae41d050d4e3c6c878dc98b80c95765ec84df26 commit 3ae41d050d4e3c6c878dc98b80c95765ec84df26 Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed Sep 12 16:28:54 2018 [bindings] Allow passing a stack state when requesting a testing GC This allows unified garbage collection to skip scanning the stack under well-controlled conditions. Fix leak detector for unified heap by collecting garbage without stack. Note: This is a no-op for wrapper tracing as it anyways ignores the stack. Bug: chromium:843903 Change-Id: Iff85697357940d0bed613839c91ae11ca754aa1c Reviewed-on: https://chromium-review.googlesource.com/1221312 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#590714} [modify] https://crrev.com/3ae41d050d4e3c6c878dc98b80c95765ec84df26/third_party/blink/renderer/bindings/core/v8/v8_gc_controller.cc [modify] https://crrev.com/3ae41d050d4e3c6c878dc98b80c95765ec84df26/third_party/blink/renderer/bindings/core/v8/v8_gc_controller.h [modify] https://crrev.com/3ae41d050d4e3c6c878dc98b80c95765ec84df26/third_party/blink/renderer/controller/blink_leak_detector.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/688ffa7a992e86d2c5d2d1712d9c9e4a778cc2ce commit 688ffa7a992e86d2c5d2d1712d9c9e4a778cc2ce Author: Michael Lippautz <mlippautz@chromium.org> Date: Thu Sep 13 16:11:35 2018 [unified-heap] Add LayoutTests expectations These tests now all pass as expected. No-try: true Bug: 843903 Change-Id: Ic17ff830d43de3cd8f171e18f1f2d2613b6e7eaf Reviewed-on: https://chromium-review.googlesource.com/1224931 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#591031} [add] https://crrev.com/688ffa7a992e86d2c5d2d1712d9c9e4a778cc2ce/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=HeapUnifiedGarbageCollection/fast/dom/StyleSheet/gc-rule-children-wrappers-expected.txt [add] https://crrev.com/688ffa7a992e86d2c5d2d1712d9c9e4a778cc2ce/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=HeapUnifiedGarbageCollection/fast/dom/gc-9-expected.txt [add] https://crrev.com/688ffa7a992e86d2c5d2d1712d9c9e4a778cc2ce/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=HeapUnifiedGarbageCollection/fast/xpath/xpath-iterator-result-should-mark-its-nodeset-expected.txt [add] https://crrev.com/688ffa7a992e86d2c5d2d1712d9c9e4a778cc2ce/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=HeapUnifiedGarbageCollection/fast/xpath/xpath-other-nodeset-result-should-mark-its-nodeset-expected.txt [add] https://crrev.com/688ffa7a992e86d2c5d2d1712d9c9e4a778cc2ce/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=HeapUnifiedGarbageCollection/fast/xpath/xpath-snapshot-result-should-mark-its-nodeset-expected.txt
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/34c8119d492496619370a87028395b3865910a77 commit 34c8119d492496619370a87028395b3865910a77 Author: Michael Lippautz <mlippautz@chromium.org> Date: Mon Sep 17 10:44:52 2018 [heap] Remove support for aborting incremental marking Abort incremental marking pulls in the requirement to also be able to abort on the embedder side. In practice, aborting is never really needed and the GC should just finalize the existing collection and do an atomic followup if exact marking information is required. Bug: chromium:843903 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Ic471332d01b0c4be26b71a06248af03255c61a9d Reviewed-on: https://chromium-review.googlesource.com/1225705 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#55949} [modify] https://crrev.com/34c8119d492496619370a87028395b3865910a77/src/api.cc [modify] https://crrev.com/34c8119d492496619370a87028395b3865910a77/src/debug/debug.cc [modify] https://crrev.com/34c8119d492496619370a87028395b3865910a77/src/heap/heap.cc [modify] https://crrev.com/34c8119d492496619370a87028395b3865910a77/src/heap/heap.h [modify] https://crrev.com/34c8119d492496619370a87028395b3865910a77/src/heap/incremental-marking.cc [modify] https://crrev.com/34c8119d492496619370a87028395b3865910a77/src/heap/incremental-marking.h [modify] https://crrev.com/34c8119d492496619370a87028395b3865910a77/src/heap/mark-compact.cc [modify] https://crrev.com/34c8119d492496619370a87028395b3865910a77/src/heap/mark-compact.h [modify] https://crrev.com/34c8119d492496619370a87028395b3865910a77/src/profiler/heap-profiler.cc [modify] https://crrev.com/34c8119d492496619370a87028395b3865910a77/src/profiler/heap-snapshot-generator.cc [modify] https://crrev.com/34c8119d492496619370a87028395b3865910a77/src/runtime/runtime-debug.cc [modify] https://crrev.com/34c8119d492496619370a87028395b3865910a77/test/cctest/cctest.cc [modify] https://crrev.com/34c8119d492496619370a87028395b3865910a77/test/cctest/cctest.h [modify] https://crrev.com/34c8119d492496619370a87028395b3865910a77/test/cctest/heap/test-heap.cc [modify] https://crrev.com/34c8119d492496619370a87028395b3865910a77/test/cctest/test-api.cc [modify] https://crrev.com/34c8119d492496619370a87028395b3865910a77/test/cctest/test-debug.cc [modify] https://crrev.com/34c8119d492496619370a87028395b3865910a77/test/cctest/test-log.cc [modify] https://crrev.com/34c8119d492496619370a87028395b3865910a77/test/cctest/test-mementos.cc [modify] https://crrev.com/34c8119d492496619370a87028395b3865910a77/test/cctest/test-weakmaps.cc [modify] https://crrev.com/34c8119d492496619370a87028395b3865910a77/test/cctest/test-weaksets.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ef391783e56081df4a501b0ebb60df109cea133d commit ef391783e56081df4a501b0ebb60df109cea133d Author: Michael Lippautz <mlippautz@chromium.org> Date: Mon Sep 17 15:24:26 2018 [unified-heap] Termination GC: Handle unified GC Re-use existing finalization methods. Bug: 843903 Change-Id: Ic876150b830f21c1cbfba0a8e5cad58a6dae9e6e Reviewed-on: https://chromium-review.googlesource.com/1228054 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#591679} [modify] https://crrev.com/ef391783e56081df4a501b0ebb60df109cea133d/third_party/blink/renderer/platform/heap/thread_state.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/1f3802a1e718e8315c826cc7cd43a100f896e1ec commit 1f3802a1e718e8315c826cc7cd43a100f896e1ec Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed Sep 19 05:17:21 2018 [heap] Remove obsolete AbortTracing calls and deprecate interface V8 does not abort incremental marking anymore. Bug: chromium:843903 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Id39e9cf8ef2afc388bab2bbad1d458ee2649f8e8 Reviewed-on: https://chromium-review.googlesource.com/1226889 Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#56009} [modify] https://crrev.com/1f3802a1e718e8315c826cc7cd43a100f896e1ec/include/v8.h [modify] https://crrev.com/1f3802a1e718e8315c826cc7cd43a100f896e1ec/src/heap/embedder-tracing.cc [modify] https://crrev.com/1f3802a1e718e8315c826cc7cd43a100f896e1ec/src/heap/embedder-tracing.h [modify] https://crrev.com/1f3802a1e718e8315c826cc7cd43a100f896e1ec/test/unittests/heap/embedder-tracing-unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/fe566be004fd4ad351db15e84ea346887c423033 commit fe566be004fd4ad351db15e84ea346887c423033 Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed Sep 19 14:14:06 2018 [heap] Concurrently process wrapper objects Concurrently process objects and only read embedder fields on the main thread. Also prepares the concurrent marking infrastructure to plug this processing into different types. Bug: chromium:885125 , chromium:843903 Change-Id: I23b7f778c16cff118dec93e11e2bbd02aaf11a78 Reviewed-on: https://chromium-review.googlesource.com/1231175 Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#56043} [modify] https://crrev.com/fe566be004fd4ad351db15e84ea346887c423033/src/heap/concurrent-marking.cc [modify] https://crrev.com/fe566be004fd4ad351db15e84ea346887c423033/src/heap/concurrent-marking.h [modify] https://crrev.com/fe566be004fd4ad351db15e84ea346887c423033/src/heap/heap.cc [modify] https://crrev.com/fe566be004fd4ad351db15e84ea346887c423033/src/heap/incremental-marking.cc [modify] https://crrev.com/fe566be004fd4ad351db15e84ea346887c423033/src/heap/incremental-marking.h [modify] https://crrev.com/fe566be004fd4ad351db15e84ea346887c423033/src/heap/mark-compact-inl.h [modify] https://crrev.com/fe566be004fd4ad351db15e84ea346887c423033/src/heap/mark-compact.cc [modify] https://crrev.com/fe566be004fd4ad351db15e84ea346887c423033/src/heap/mark-compact.h [modify] https://crrev.com/fe566be004fd4ad351db15e84ea346887c423033/test/cctest/heap/test-concurrent-marking.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/c7cd3cc6b183df93f7ba3b88b28ddf0d73c1f953 commit c7cd3cc6b183df93f7ba3b88b28ddf0d73c1f953 Author: Michael Lippautz <mlippautz@chromium.org> Date: Thu Sep 20 09:04:01 2018 [heap] Introduce sub-visitors for JSArrayBufferView Introduces visitor methods for - JSDataView - JSTypedArray Bug: chromium:885125 , chromium:843903 Change-Id: I812eaf0619034641c6998f9d164bee84bc4c6ca2 Reviewed-on: https://chromium-review.googlesource.com/1235693 Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#56061} [modify] https://crrev.com/c7cd3cc6b183df93f7ba3b88b28ddf0d73c1f953/src/heap/concurrent-marking.cc [modify] https://crrev.com/c7cd3cc6b183df93f7ba3b88b28ddf0d73c1f953/src/heap/objects-visiting.h [modify] https://crrev.com/c7cd3cc6b183df93f7ba3b88b28ddf0d73c1f953/src/objects.cc [modify] https://crrev.com/c7cd3cc6b183df93f7ba3b88b28ddf0d73c1f953/src/objects/map.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/4d9f09b513c45d292af618d5a57607c41f821f9e commit 4d9f09b513c45d292af618d5a57607c41f821f9e Author: Michael Lippautz <mlippautz@chromium.org> Date: Thu Sep 20 14:39:22 2018 [heap] Add support for non-API wrapper types Adds support for tracing wrappers of the following types: - JSArrayBuffer - JSDataView - JSTypedArray Unlike API objects, these objects are equipped with embedder fields at compile time and can thus be attached to Blink objects at any time. Bug: chromium:885125 , chromium:843903 Change-Id: If2dab4831f42a4edc0748b7071d451fe1953f076 Reviewed-on: https://chromium-review.googlesource.com/1234418 Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#56092} [modify] https://crrev.com/4d9f09b513c45d292af618d5a57607c41f821f9e/src/heap/concurrent-marking.cc [modify] https://crrev.com/4d9f09b513c45d292af618d5a57607c41f821f9e/src/heap/mark-compact-inl.h [modify] https://crrev.com/4d9f09b513c45d292af618d5a57607c41f821f9e/src/heap/mark-compact.h [modify] https://crrev.com/4d9f09b513c45d292af618d5a57607c41f821f9e/src/objects.cc [modify] https://crrev.com/4d9f09b513c45d292af618d5a57607c41f821f9e/src/objects.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/261cd2f5396bbe54104ecbaa5ae1f98e2f8f43e6 commit 261cd2f5396bbe54104ecbaa5ae1f98e2f8f43e6 Author: Michael Lippautz <mlippautz@chromium.org> Date: Thu Sep 20 19:20:35 2018 [api] Add getter for EmbedderHeapTracer Bug: chromium:843903 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I93fffd197d1742d0b00e69e0967a9efb47921208 Reviewed-on: https://chromium-review.googlesource.com/1236253 Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#56102} [modify] https://crrev.com/261cd2f5396bbe54104ecbaa5ae1f98e2f8f43e6/include/v8.h [modify] https://crrev.com/261cd2f5396bbe54104ecbaa5ae1f98e2f8f43e6/src/api.cc [modify] https://crrev.com/261cd2f5396bbe54104ecbaa5ae1f98e2f8f43e6/src/heap/embedder-tracing.h [modify] https://crrev.com/261cd2f5396bbe54104ecbaa5ae1f98e2f8f43e6/src/heap/heap.cc [modify] https://crrev.com/261cd2f5396bbe54104ecbaa5ae1f98e2f8f43e6/src/heap/heap.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/5b64e891917d845d28f17bf228a2395e95f6ddb4 commit 5b64e891917d845d28f17bf228a2395e95f6ddb4 Author: Michael Lippautz <mlippautz@chromium.org> Date: Mon Sep 24 11:10:00 2018 content: Add asyncCollectGarbage to GCController Adds an async GC call to GCController which is used from asyncGC() during layout tests. Currently the async GC calls a regular V8 GC which schedules a precise Oilpan GC as followup. In a unified GC world a V8 GC runs both, V8's GC and Oilpan, with the difference that it has to conservatively scan the stack as Oilpan is not run from the event loop. This is fixed by posting a task and calling a V8 GC indicating that there's no relevant stack present. Bug: chromium:843903 Change-Id: I411d63df4aa61b51928aded86d998ad78af35a1e Reviewed-on: https://chromium-review.googlesource.com/1236074 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Jochen Eisinger <jochen@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#593503} [modify] https://crrev.com/5b64e891917d845d28f17bf228a2395e95f6ddb4/content/shell/test_runner/gc_controller.cc [modify] https://crrev.com/5b64e891917d845d28f17bf228a2395e95f6ddb4/content/shell/test_runner/gc_controller.h [modify] https://crrev.com/5b64e891917d845d28f17bf228a2395e95f6ddb4/content/shell/test_runner/test_interfaces.cc [modify] https://crrev.com/5b64e891917d845d28f17bf228a2395e95f6ddb4/gin/arguments.h [modify] https://crrev.com/5b64e891917d845d28f17bf228a2395e95f6ddb4/third_party/WebKit/LayoutTests/resources/js-test.js
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3883a34822b0e8801f9c04e194a397ab9db8cec3 commit 3883a34822b0e8801f9c04e194a397ab9db8cec3 Author: Michael Lippautz <mlippautz@chromium.org> Date: Mon Sep 24 15:46:56 2018 [unified-heap] Fix media/encrypted-media/* liveness layout tests Update asyncGC function to the latest version to guarantee that GCs are indeed run without stack. Bug: chromium:843903 Change-Id: Iaa61f27cacd99854665358720d2354522b756302 Reviewed-on: https://chromium-review.googlesource.com/1238623 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#593550} [modify] https://crrev.com/3883a34822b0e8801f9c04e194a397ab9db8cec3/third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-utils.js
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/9cca324ef27da638c12e1608507fd2ec54221d04 commit 9cca324ef27da638c12e1608507fd2ec54221d04 Author: Michael Lippautz <mlippautz@chromium.org> Date: Mon Sep 24 15:49:07 2018 [unified-heap] Fix indexdb liveness layout tests Replace direct GC calls that expect objects to die with asyncGC calls that are guaranteed to run without stack. Bug: chromium:843903 Change-Id: Ie708567fae153d0f1a20109fe170025afdc1715b Reviewed-on: https://chromium-review.googlesource.com/1238451 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#593551} [modify] https://crrev.com/9cca324ef27da638c12e1608507fd2ec54221d04/third_party/WebKit/LayoutTests/storage/indexeddb/connection-leak-expected.txt [modify] https://crrev.com/9cca324ef27da638c12e1608507fd2ec54221d04/third_party/WebKit/LayoutTests/storage/indexeddb/connection-leak.html [modify] https://crrev.com/9cca324ef27da638c12e1608507fd2ec54221d04/third_party/WebKit/LayoutTests/storage/indexeddb/cursor-leak.html [modify] https://crrev.com/9cca324ef27da638c12e1608507fd2ec54221d04/third_party/WebKit/LayoutTests/storage/indexeddb/delete-closed-database-object-expected.txt [modify] https://crrev.com/9cca324ef27da638c12e1608507fd2ec54221d04/third_party/WebKit/LayoutTests/storage/indexeddb/resources/delete-closed-database-object.js
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/03123704059d389882458a7161e99fb2169e65bf commit 03123704059d389882458a7161e99fb2169e65bf Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue Sep 25 11:13:40 2018 LayoutTests: Move internal GC functions to resources/gc.js Bug: chromium:843903 Change-Id: I8509394ab507c0950b266c2e43f1484a67523af7 Reviewed-on: https://chromium-review.googlesource.com/1242465 Reviewed-by: Kentaro Hara <haraken@chromium.org> Reviewed-by: Kent Tamura <tkent@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#593888} [modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/dom/attr/access-after-element-destruction.html [modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/fast/dom/HTMLTemplateElement/custom-element-wrapper-gc-expected.txt [modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/fast/dom/HTMLTemplateElement/custom-element-wrapper-gc.html [modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/fast/dom/Window/property-access-on-cached-properties-after-frame-removed-and-gced.html [modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-and-gced.html [modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/fast/dom/inline-event-attributes-release.html [modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/fast/dom/minor-dom-gc.html [modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/fast/events/message-port-gc-closed-cloned.html [modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/fast/events/message-port-gc-closed.html [modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/fast/peerconnection/RTCPeerConnection-lifetime.html [modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/fast/workers/chromium/worker-document-leak.html [modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/http/tests/encoding/streams-gc.html [modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/http/tests/xmlhttprequest/abort-on-changestate-headers-received.html [modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/resources/gc.js [modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/resources/js-test.js [modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/storage/indexeddb/connection-leak.html [modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/storage/indexeddb/cursor-leak.html [modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/storage/indexeddb/delete-closed-database-object.html [modify] https://crrev.com/03123704059d389882458a7161e99fb2169e65bf/third_party/WebKit/LayoutTests/storage/indexeddb/resources/delete-closed-database-object.js
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/fd4f2810d7e22a5177c34db7242ec4540dbac062 commit fd4f2810d7e22a5177c34db7242ec4540dbac062 Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue Sep 25 11:29:21 2018 [unified-heap] Another round of indexeddb layout test fixes Bug: chromium:843903 Change-Id: I6734e9332056c041e934a732bc46411cf7c0d75f Reviewed-on: https://chromium-review.googlesource.com/1242927 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#593891} [modify] https://crrev.com/fd4f2810d7e22a5177c34db7242ec4540dbac062/third_party/WebKit/LayoutTests/storage/indexeddb/cursor-request-cycle-expected.txt [modify] https://crrev.com/fd4f2810d7e22a5177c34db7242ec4540dbac062/third_party/WebKit/LayoutTests/storage/indexeddb/cursor-request-cycle.html [modify] https://crrev.com/fd4f2810d7e22a5177c34db7242ec4540dbac062/third_party/WebKit/LayoutTests/storage/indexeddb/key-cursor-request-cycle-expected.txt [modify] https://crrev.com/fd4f2810d7e22a5177c34db7242ec4540dbac062/third_party/WebKit/LayoutTests/storage/indexeddb/key-cursor-request-cycle.html [modify] https://crrev.com/fd4f2810d7e22a5177c34db7242ec4540dbac062/third_party/WebKit/LayoutTests/storage/indexeddb/request-leak-expected.txt [modify] https://crrev.com/fd4f2810d7e22a5177c34db7242ec4540dbac062/third_party/WebKit/LayoutTests/storage/indexeddb/request-leak.html
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e556460885b206ee95428bd30d1665fa8fbe2ad8 commit e556460885b206ee95428bd30d1665fa8fbe2ad8 Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue Sep 25 11:43:28 2018 [unified-heap] Fix fast/peerconnection/* liveness GC test Update waitAndGc to call asyncGC function to guarantee that GCs are indeed run without stack. Bug: chromium:843903 Change-Id: Id0117fa23f3dbb42f73b521c922a8a2334a1c55e Reviewed-on: https://chromium-review.googlesource.com/1240302 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#593892} [modify] https://crrev.com/e556460885b206ee95428bd30d1665fa8fbe2ad8/third_party/WebKit/LayoutTests/fast/peerconnection/RTCPeerConnection-garbagecollected.html
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/33e252a73b7c952fe21098c79250ea4d9fcd807a commit 33e252a73b7c952fe21098c79250ea4d9fcd807a Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue Sep 25 12:37:25 2018 [unified-heap] Fix liveness in locks/chromium-waiting-promise-gc.html Bug: chromium:843903 Change-Id: If313be18bdb7e0ca4c40c7ffb368df44634e1cf1 Reviewed-on: https://chromium-review.googlesource.com/1242467 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#593901} [modify] https://crrev.com/33e252a73b7c952fe21098c79250ea4d9fcd807a/third_party/WebKit/LayoutTests/http/tests/locks/chromium-waiting-promise-gc.html
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ac15a3f1cd4384cd17e295ebc65fa33ab6d75035 commit ac15a3f1cd4384cd17e295ebc65fa33ab6d75035 Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue Sep 25 15:51:37 2018 [unified-heap] Fix liveness checks in netinfo/gc-frame-listeners.html Bug: 843903 Change-Id: Ia6ec2f6f9b6e8e2db1fcf66122a3ede646c1f52c Reviewed-on: https://chromium-review.googlesource.com/1243129 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#593948} [modify] https://crrev.com/ac15a3f1cd4384cd17e295ebc65fa33ab6d75035/third_party/WebKit/LayoutTests/netinfo/gc-frame-listeners.html
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/5080522a8980a5815f76c9a45c7add38ed2979ed commit 5080522a8980a5815f76c9a45c7add38ed2979ed Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue Sep 25 17:20:21 2018 [unified-heap] Remove wrong collections test Removes a test that was checking that a JS wrapper was collected when doing a V8 GC. This relies on the fact that wrapper tracing does not see the back references in LiveNodeList::owner_. No-try: true Bug: 843903 Change-Id: I0586ba63f15d686a6e33c152d9eb9a8f08247cd5 Reviewed-on: https://chromium-review.googlesource.com/1243066 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#593979} [delete] https://crrev.com/51865f3e78c5d0b7dbbee2d563e3cb1a4d7222c3/third_party/WebKit/LayoutTests/fast/dom/html-options-collection-lifetime-expected.txt [delete] https://crrev.com/51865f3e78c5d0b7dbbee2d563e3cb1a4d7222c3/third_party/WebKit/LayoutTests/fast/dom/html-options-collection-lifetime.html
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b209442fa2c29021b06a6dcbbd0486b440011fe2 commit b209442fa2c29021b06a6dcbbd0486b440011fe2 Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue Sep 25 18:42:20 2018 [unified-heap] Fix termination sequence for EmbedderHeapTracer Garbage collection needs to be finalized before unsetting the EmbedderHeapTracer pointer. Otherwise, an already running GC may not be properly finalized and the GC is left in a undefined state which the subsequent follow up GCs discover. Bug: 843903 Change-Id: I4dc73005174a1b99dfda96ef379fe62bf5b34dbe Reviewed-on: https://chromium-review.googlesource.com/1243247 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#594024} [modify] https://crrev.com/b209442fa2c29021b06a6dcbbd0486b440011fe2/third_party/blink/renderer/platform/bindings/v8_per_isolate_data.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/01ce70a2109d61512ebfd3665e37ea94c47c8bed commit 01ce70a2109d61512ebfd3665e37ea94c47c8bed Author: Michael Lippautz <mlippautz@chromium.org> Date: Mon Oct 08 18:50:22 2018 [heap] Use forced flags for LowMemoryNotification The notification is only used for testing and benchmarking purposes. Announcing low memory is usually done using MemoryPressure API. Bug: chromium:843903 Change-Id: I998018f7f5f3a0d06283aa6010228a9c86f12c39 Reviewed-on: https://chromium-review.googlesource.com/c/1269037 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#56454} [modify] https://crrev.com/01ce70a2109d61512ebfd3665e37ea94c47c8bed/src/heap/heap.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/86ad5118a10f784f33bc7d767e700eb0f6593316 commit 86ad5118a10f784f33bc7d767e700eb0f6593316 Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue Oct 09 09:10:19 2018 [unified-heap] Avoid scheduling empty incremental steps These steps have overhead that is noticeable. Instead, bail out after first observing the work list as empty. Newly discovered objects are still processed incrementally via V8 helping mechanisms. Bug: 843903 Change-Id: I3567557635418e284b85815e3e83aa14e64310bf Reviewed-on: https://chromium-review.googlesource.com/c/1269039 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#597848} [modify] https://crrev.com/86ad5118a10f784f33bc7d767e700eb0f6593316/third_party/blink/renderer/platform/heap/thread_state.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/fc3eaf7c8669dcb7b1e9b9bda2f399a3727858b8 commit fc3eaf7c8669dcb7b1e9b9bda2f399a3727858b8 Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue Oct 09 09:44:14 2018 [heap] Announce whether GC was forced in tracing scopes This information is used on the metrics side to filter out forced GCs at the beginning of benchmark runs. Bug: 843903 Change-Id: Ia57ee25fb51afbcf06d541a30e3d1f6b51e95557 Reviewed-on: https://chromium-review.googlesource.com/c/1268937 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#597861} [modify] https://crrev.com/fc3eaf7c8669dcb7b1e9b9bda2f399a3727858b8/third_party/blink/renderer/platform/heap/thread_state.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/36a52f6c5090ecef8675e19f7c949e11fe9f97b9 commit 36a52f6c5090ecef8675e19f7c949e11fe9f97b9 Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue Oct 09 19:00:38 2018 [heap] Simplify GC scheduling for unified heap GCs Bug: 843903 Change-Id: Ib09bda7c2ae2c0afd0326a741f1c12f78924181f Reviewed-on: https://chromium-review.googlesource.com/c/1268939 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Cr-Commit-Position: refs/heads/master@{#598017} [modify] https://crrev.com/36a52f6c5090ecef8675e19f7c949e11fe9f97b9/third_party/blink/renderer/bindings/core/v8/v8_gc_controller.cc
The following revision refers to this bug: https://chromium.googlesource.com/catapult/+/e28148f1c9aea534c937b145d4d9a45462faa414 commit e28148f1c9aea534c937b145d4d9a45462faa414 Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue Oct 09 22:56:02 2018 Ignore forced Blink GCs in metrics Similar to V8 traces, ignore forced Blink GCs as they can dominate the results. Bug: chromium:843903 Change-Id: I6f1760306193cea4b48caa203e0f9c16867f5416 Reviewed-on: https://chromium-review.googlesource.com/c/1269155 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Ben Hayden <benjhayden@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> [modify] https://crrev.com/e28148f1c9aea534c937b145d4d9a45462faa414/tracing/tracing/metrics/blink/gc_metric.html [modify] https://crrev.com/e28148f1c9aea534c937b145d4d9a45462faa414/tracing/tracing/metrics/blink/gc_metric_test.html
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ba688e0187826d1ba43799dea76bb0eea45e8008 commit ba688e0187826d1ba43799dea76bb0eea45e8008 Author: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com> Date: Wed Oct 10 13:08:08 2018 Roll src/third_party/catapult 357c5c287bba..86bdcbf37ffc (3 commits) https://chromium.googlesource.com/catapult.git/+log/357c5c287bba..86bdcbf37ffc git log 357c5c287bba..86bdcbf37ffc --date=short --no-merges --format='%ad %ae %s' 2018-10-10 pasko@chromium.org androidStartupMetric: slow fallback for incorrect process names 2018-10-09 benjhayden@chromium.org Add Request classes for v2spa 2018-10-09 mlippautz@chromium.org Ignore forced Blink GCs in metrics Created with: gclient setdep -r src/third_party/catapult@86bdcbf37ffc The AutoRoll server is located here: https://autoroll.skia.org/r/catapult-autoroll Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff, who should be CC'd on the roll, and stop the roller if necessary. CQ_INCLUDE_TRYBOTS=luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel BUG= chromium:886621 ,chromium:891797,chromium:843903 TBR=sullivan@chromium.org Change-Id: I9aedff776241a9f68f0d9efa700c0e769eb29d2c Reviewed-on: https://chromium-review.googlesource.com/c/1273339 Reviewed-by: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#598298} [modify] https://crrev.com/ba688e0187826d1ba43799dea76bb0eea45e8008/DEPS
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/e8faae72c59beb6ca234313830d8cb5239772d7d commit e8faae72c59beb6ca234313830d8cb5239772d7d Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed Oct 10 13:41:09 2018 [platform] Add TaskRunner::PostNonNestableTask The API will be used to post GC tasks that benefit from being executed at top level. Bug: chromium:843903 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I062855e810ca9a8d8af8ae8b66e02c85e108798b Reviewed-on: https://chromium-review.googlesource.com/c/1273045 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#56528} [modify] https://crrev.com/e8faae72c59beb6ca234313830d8cb5239772d7d/include/v8-platform.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7f08809af15106c04feb6188b5d54c93af19472b commit 7f08809af15106c04feb6188b5d54c93af19472b Author: Michael Lippautz <mlippautz@chromium.org> Date: Thu Oct 11 16:45:44 2018 [gin] Allow posting non-nestable tasks through V8 Will be used to allow V8 posting top-level tasks. Bug: chromium:843903 Change-Id: I97caa705b561fa8832ef8a11abfc3eefe47ec3f8 Reviewed-on: https://chromium-review.googlesource.com/c/1273140 Reviewed-by: Jochen Eisinger <jochen@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#598802} [modify] https://crrev.com/7f08809af15106c04feb6188b5d54c93af19472b/gin/v8_foreground_task_runner.cc [modify] https://crrev.com/7f08809af15106c04feb6188b5d54c93af19472b/gin/v8_foreground_task_runner.h [modify] https://crrev.com/7f08809af15106c04feb6188b5d54c93af19472b/gin/v8_foreground_task_runner_with_locker.cc [modify] https://crrev.com/7f08809af15106c04feb6188b5d54c93af19472b/gin/v8_foreground_task_runner_with_locker.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0174bab48c75e579b8369652e5ed5b4c8dcb11de commit 0174bab48c75e579b8369652e5ed5b4c8dcb11de Author: Vasilii Sukhanov <vasilii@chromium.org> Date: Thu Oct 11 16:56:27 2018 Revert "[gin] Allow posting non-nestable tasks through V8" This reverts commit 7f08809af15106c04feb6188b5d54c93af19472b. Reason for revert: broke compilation https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8932945363042209344/+/steps/compile/0/stdout ../../gin/v8_foreground_task_runner.h:27:60: error: only virtual member functions can be marked 'override' void PostNonNestableTask(std::unique_ptr<v8::Task> task) override; ^~~~~~~~ ../../gin/v8_foreground_task_runner.h:34:40: error: only virtual member functions can be marked 'override' bool NonNestableTasksEnabled() const override; Original change's description: > [gin] Allow posting non-nestable tasks through V8 > > Will be used to allow V8 posting top-level tasks. > > Bug: chromium:843903 > Change-Id: I97caa705b561fa8832ef8a11abfc3eefe47ec3f8 > Reviewed-on: https://chromium-review.googlesource.com/c/1273140 > Reviewed-by: Jochen Eisinger <jochen@chromium.org> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#598802} TBR=mlippautz@chromium.org,jochen@chromium.org Change-Id: I5d427abfe85e3b69a3d649ee190406a5d9583d9e No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:843903 Reviewed-on: https://chromium-review.googlesource.com/c/1277086 Reviewed-by: Vasilii Sukhanov <vasilii@chromium.org> Commit-Queue: Vasilii Sukhanov <vasilii@chromium.org> Cr-Commit-Position: refs/heads/master@{#598804} [modify] https://crrev.com/0174bab48c75e579b8369652e5ed5b4c8dcb11de/gin/v8_foreground_task_runner.cc [modify] https://crrev.com/0174bab48c75e579b8369652e5ed5b4c8dcb11de/gin/v8_foreground_task_runner.h [modify] https://crrev.com/0174bab48c75e579b8369652e5ed5b4c8dcb11de/gin/v8_foreground_task_runner_with_locker.cc [modify] https://crrev.com/0174bab48c75e579b8369652e5ed5b4c8dcb11de/gin/v8_foreground_task_runner_with_locker.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/98cc77946ed5ceb4cbda3b0087dfda100b0d4c35 commit 98cc77946ed5ceb4cbda3b0087dfda100b0d4c35 Author: Michael Lippautz <mlippautz@chromium.org> Date: Sun Oct 14 20:33:04 2018 Reland "[gin] Allow posting non-nestable tasks through V8" This is a reland of 7f08809af15106c04feb6188b5d54c93af19472b Original change's description: > [gin] Allow posting non-nestable tasks through V8 > > Will be used to allow V8 posting top-level tasks. > > Bug: chromium:843903 > Change-Id: I97caa705b561fa8832ef8a11abfc3eefe47ec3f8 > Reviewed-on: https://chromium-review.googlesource.com/c/1273140 > Reviewed-by: Jochen Eisinger <jochen@chromium.org> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#598802} Tbr: jochen@chromium.org Bug: chromium:843903 Change-Id: I52e95076a32e0648c4c77530689b41757f7420c8 Reviewed-on: https://chromium-review.googlesource.com/c/1277798 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#599543} [modify] https://crrev.com/98cc77946ed5ceb4cbda3b0087dfda100b0d4c35/gin/v8_foreground_task_runner.cc [modify] https://crrev.com/98cc77946ed5ceb4cbda3b0087dfda100b0d4c35/gin/v8_foreground_task_runner.h [modify] https://crrev.com/98cc77946ed5ceb4cbda3b0087dfda100b0d4c35/gin/v8_foreground_task_runner_with_locker.cc [modify] https://crrev.com/98cc77946ed5ceb4cbda3b0087dfda100b0d4c35/gin/v8_foreground_task_runner_with_locker.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/56bdba085a59c1e9e62abe4d920244339e225748 commit 56bdba085a59c1e9e62abe4d920244339e225748 Author: Michael Lippautz <mlippautz@chromium.org> Date: Mon Oct 15 11:47:39 2018 [unified-heap] Use up-to-date V8 api Bug: 843903 Change-Id: I9271138dfcdf72cd67965ada3b3e8b03b3b89222 Reviewed-on: https://chromium-review.googlesource.com/c/1277803 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#599613} [modify] https://crrev.com/56bdba085a59c1e9e62abe4d920244339e225748/third_party/blink/renderer/bindings/core/v8/script_wrappable_marking_visitor_test.cc [modify] https://crrev.com/56bdba085a59c1e9e62abe4d920244339e225748/third_party/blink/renderer/platform/bindings/script_wrappable_marking_visitor.cc [modify] https://crrev.com/56bdba085a59c1e9e62abe4d920244339e225748/third_party/blink/renderer/platform/bindings/script_wrappable_marking_visitor.h [modify] https://crrev.com/56bdba085a59c1e9e62abe4d920244339e225748/third_party/blink/renderer/platform/bindings/v8_per_isolate_data.cc [modify] https://crrev.com/56bdba085a59c1e9e62abe4d920244339e225748/third_party/blink/renderer/platform/heap/unified_heap_controller.cc [modify] https://crrev.com/56bdba085a59c1e9e62abe4d920244339e225748/third_party/blink/renderer/platform/heap/unified_heap_controller.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/da524227cb7a6a4f061e49ec4d7a20adae660af3 commit da524227cb7a6a4f061e49ec4d7a20adae660af3 Author: Michael Lippautz <mlippautz@chromium.org> Date: Mon Oct 15 12:53:46 2018 [heap] Allow pausing incremental steps Bug: 843903 Change-Id: I51f920f3e775e09ebb8b1dcc569f229b1c98c678 Reviewed-on: https://chromium-review.googlesource.com/c/1280662 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#599621} [modify] https://crrev.com/da524227cb7a6a4f061e49ec4d7a20adae660af3/third_party/blink/renderer/platform/heap/thread_state.cc [modify] https://crrev.com/da524227cb7a6a4f061e49ec4d7a20adae660af3/third_party/blink/renderer/platform/heap/thread_state.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/e11053a96fd51b4815476e37a08905856c4b953d commit e11053a96fd51b4815476e37a08905856c4b953d Author: Michael Lippautz <mlippautz@chromium.org> Date: Mon Oct 15 16:37:49 2018 [api] Remove deprecated EmbedderHeapTracer APIs Also fully deprecate AbortTracing. Bug: chromium:843903 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I852d28d8ce0f02b3a048b1061de29c9fce71ce62 Reviewed-on: https://chromium-review.googlesource.com/c/1278811 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#56655} [modify] https://crrev.com/e11053a96fd51b4815476e37a08905856c4b953d/include/v8.h [modify] https://crrev.com/e11053a96fd51b4815476e37a08905856c4b953d/src/api.cc [modify] https://crrev.com/e11053a96fd51b4815476e37a08905856c4b953d/test/cctest/heap/test-embedder-tracing.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f85f6c8c7ff4cde96d088a0f262e929af6bdab09 commit f85f6c8c7ff4cde96d088a0f262e929af6bdab09 Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed Oct 17 08:48:54 2018 v8 benchmarks: Allow v8-mark-compactor metric in benchmarks Bug: 843903 Change-Id: Ia1b60e3a4ee2aa239e3fad7bea198c38484b2840 Reviewed-on: https://chromium-review.googlesource.com/c/1282953 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Ned Nguyen <nednguyen@google.com> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#600320} [modify] https://crrev.com/f85f6c8c7ff4cde96d088a0f262e929af6bdab09/tools/perf/benchmarks/v8_browsing.py
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/fe76251df339eee950345317531fd97d4649567f commit fe76251df339eee950345317531fd97d4649567f Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed Oct 17 19:42:30 2018 [heap] Add GC sum counters Adds reporting for - V8.GCMarkCompactor as sum of V8 mark-compact events Bug: chromium:843903 Change-Id: I5e8a80c8d1a9c5bf696635b54659ac56403f52d5 Reviewed-on: https://chromium-review.googlesource.com/c/1256764 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#56750} [modify] https://crrev.com/fe76251df339eee950345317531fd97d4649567f/src/counters.h [modify] https://crrev.com/fe76251df339eee950345317531fd97d4649567f/src/heap/gc-tracer.cc [modify] https://crrev.com/fe76251df339eee950345317531fd97d4649567f/src/heap/gc-tracer.h [modify] https://crrev.com/fe76251df339eee950345317531fd97d4649567f/test/unittests/heap/gc-tracer-unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/catapult/+/2d4733846e818eba69c9fac5d0dcf15449d0ce89 commit 2d4733846e818eba69c9fac5d0dcf15449d0ce89 Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed Oct 17 19:43:09 2018 V8 GC metrics: Add GC cycle time Adds cycle time of V8 GCs using the same number that is also reported to UMA. Bug: chromium:843903 Change-Id: I3d3cd9de20fe8a0c22f9a7837809b9f7838cabfa Reviewed-on: https://chromium-review.googlesource.com/c/1283090 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Ben Hayden <benjhayden@chromium.org> [modify] https://crrev.com/2d4733846e818eba69c9fac5d0dcf15449d0ce89/tracing/tracing/metrics/v8/gc_metric.html [modify] https://crrev.com/2d4733846e818eba69c9fac5d0dcf15449d0ce89/tracing/tracing/metrics/v8/utils.html [modify] https://crrev.com/2d4733846e818eba69c9fac5d0dcf15449d0ce89/tracing/tracing/metrics/v8/gc_metric_test.html
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c497839a252c31e78ed11de58d83c5823f89c305 commit c497839a252c31e78ed11de58d83c5823f89c305 Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed Oct 17 22:10:35 2018 UMA: Add V8.GCMarkCompactor histogram V8 CL: http://crrev.com/c/1256764 Bug: 843903 Change-Id: I347a507cb25ae86d911ca3863ae79efb57cf2f1d Reviewed-on: https://chromium-review.googlesource.com/c/1286147 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Mark Pearson <mpearson@chromium.org> Cr-Commit-Position: refs/heads/master@{#600573} [modify] https://crrev.com/c497839a252c31e78ed11de58d83c5823f89c305/tools/metrics/histograms/histograms.xml
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/787cc29cc7619c9c83da56d16fd7fba5583e4fc4 commit 787cc29cc7619c9c83da56d16fd7fba5583e4fc4 Author: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com> Date: Thu Oct 18 10:06:58 2018 Roll src/third_party/catapult 519565187c85..3d878160972c (5 commits) https://chromium.googlesource.com/catapult.git/+log/519565187c85..3d878160972c git log 519565187c85..3d878160972c --date=short --no-merges --format='%ad %ae %s' 2018-10-18 cbruni@chromium.org [telemetry] Support unicode keys in KeyPressAction 2018-10-18 bpastene@chromium.org devil: Exit w/ a non-zero code when unlock_bootloader.py fails. 2018-10-17 nharper@chromium.org netlog_viewer: match QUIC sessions table rows with headers 2018-10-17 mlippautz@chromium.org V8 GC metrics: Add GC cycle time 2018-10-17 nharper@chromium.org Fix path for serving netlog_viewer locally in README.md Created with: gclient setdep -r src/third_party/catapult@3d878160972c The AutoRoll server is located here: https://autoroll.skia.org/r/catapult-autoroll Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff, who should be CC'd on the roll, and stop the roller if necessary. CQ_INCLUDE_TRYBOTS=luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel BUG=chromium:878390,chromium:843903 TBR=sullivan@chromium.org Change-Id: Iaa3306106064794f6b10421d28eaddff58126f5c Reviewed-on: https://chromium-review.googlesource.com/c/1288024 Reviewed-by: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#600712} [modify] https://crrev.com/787cc29cc7619c9c83da56d16fd7fba5583e4fc4/DEPS
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6081dfae2cf077ee825b2ecfa735df3302bfa00a commit 6081dfae2cf077ee825b2ecfa735df3302bfa00a Author: Michael Lippautz <mlippautz@chromium.org> Date: Thu Oct 18 13:10:14 2018 [unified-heap] Add browser flags Adds flags on all browser layers which are used for enabling in a Finch trial. Tbr: jochen@chromium.org Bug: 843903 Change-Id: I50d9aa479b1fb6e27588eae000138564f377b523 Reviewed-on: https://chromium-review.googlesource.com/c/1286854 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Cr-Commit-Position: refs/heads/master@{#600741} [modify] https://crrev.com/6081dfae2cf077ee825b2ecfa735df3302bfa00a/chrome/browser/about_flags.cc [modify] https://crrev.com/6081dfae2cf077ee825b2ecfa735df3302bfa00a/chrome/browser/flag_descriptions.cc [modify] https://crrev.com/6081dfae2cf077ee825b2ecfa735df3302bfa00a/chrome/browser/flag_descriptions.h [modify] https://crrev.com/6081dfae2cf077ee825b2ecfa735df3302bfa00a/content/child/runtime_features.cc [modify] https://crrev.com/6081dfae2cf077ee825b2ecfa735df3302bfa00a/content/public/common/content_features.cc [modify] https://crrev.com/6081dfae2cf077ee825b2ecfa735df3302bfa00a/content/public/common/content_features.h [modify] https://crrev.com/6081dfae2cf077ee825b2ecfa735df3302bfa00a/third_party/blink/public/platform/web_runtime_features.h [modify] https://crrev.com/6081dfae2cf077ee825b2ecfa735df3302bfa00a/third_party/blink/renderer/platform/exported/web_runtime_features.cc [modify] https://crrev.com/6081dfae2cf077ee825b2ecfa735df3302bfa00a/tools/metrics/histograms/enums.xml
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7f0c7d47b718b1effea2ed5bdb9ce17c3ad94fde commit 7f0c7d47b718b1effea2ed5bdb9ce17c3ad94fde Author: Michael Lippautz <mlippautz@chromium.org> Date: Fri Oct 19 06:07:29 2018 Add Blink GC, and global renderer GC sums Adds the following UMA metricss: - BlinkGC.TimeForGCCycle: Time spent in Blink GC for a complete cycle. This includes marking, the atomic pause, and sweeping. - BlinkGC.TimeForNestedInV8: Time spent in Blink GC events that are nested in V8 GC events. Bug: 843903 Change-Id: Ide371e4d599b6c0f19593d9d6c77ed88a86704c5 Reviewed-on: https://chromium-review.googlesource.com/c/1283369 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Reviewed-by: Mark Pearson <mpearson@chromium.org> Cr-Commit-Position: refs/heads/master@{#601060} [modify] https://crrev.com/7f0c7d47b718b1effea2ed5bdb9ce17c3ad94fde/third_party/blink/renderer/bindings/core/v8/v8_gc_controller.cc [modify] https://crrev.com/7f0c7d47b718b1effea2ed5bdb9ce17c3ad94fde/third_party/blink/renderer/platform/heap/heap_stats_collector.cc [modify] https://crrev.com/7f0c7d47b718b1effea2ed5bdb9ce17c3ad94fde/third_party/blink/renderer/platform/heap/heap_stats_collector.h [modify] https://crrev.com/7f0c7d47b718b1effea2ed5bdb9ce17c3ad94fde/third_party/blink/renderer/platform/heap/thread_state.cc [modify] https://crrev.com/7f0c7d47b718b1effea2ed5bdb9ce17c3ad94fde/third_party/blink/renderer/platform/heap/unified_heap_controller.cc [modify] https://crrev.com/7f0c7d47b718b1effea2ed5bdb9ce17c3ad94fde/tools/metrics/histograms/histograms.xml
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c084b57d175db348e8efbaed3102b314406965b1 commit c084b57d175db348e8efbaed3102b314406965b1 Author: Michael Lippautz <mlippautz@chromium.org> Date: Mon Oct 22 09:35:29 2018 [unified-heap] Update unit tests for unified heap Use GC without scanning stack for testing purposes when necessary. A different strategy for the current architecture would be making tests truly async and scheduling GC from the event loop. Bug: 843903 Change-Id: Ib479d4a090bc04cbc4fe28522f0b9e084f34181d Reviewed-on: https://chromium-review.googlesource.com/c/1292878 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#601505} [modify] https://crrev.com/c084b57d175db348e8efbaed3102b314406965b1/third_party/blink/renderer/core/resize_observer/resize_observer_test.cc [modify] https://crrev.com/c084b57d175db348e8efbaed3102b314406965b1/third_party/blink/renderer/core/streams/transform_stream_test.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0bc4f833490bad2412220660acec8039c1d92199 commit 0bc4f833490bad2412220660acec8039c1d92199 Author: Michael Lippautz <mlippautz@chromium.org> Date: Mon Oct 22 13:05:31 2018 [unified-heap] Fix test runner Some tests rely on properly collecting objects on tear down. E.g. mock objects are expected to die after a test finishes. Bug: 843903 Change-Id: Ica1daee98be3625e4f2202fe0a73b290b5130ce9 Reviewed-on: https://chromium-review.googlesource.com/c/1293489 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#601544} [modify] https://crrev.com/0bc4f833490bad2412220660acec8039c1d92199/third_party/blink/renderer/controller/tests/run_all_tests.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0d7212e1cb00f9ffd686c5b633246666af0a5dbd commit 0d7212e1cb00f9ffd686c5b633246666af0a5dbd Author: Michael Lippautz <mlippautz@chromium.org> Date: Mon Oct 22 13:07:09 2018 [unified-heap] Adjust wrapper tracing and integration tests Bug: 843903 Change-Id: I95a0caae7f528be908caff24515971b29b4f645f Reviewed-on: https://chromium-review.googlesource.com/c/1292564 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#601545} [modify] https://crrev.com/0d7212e1cb00f9ffd686c5b633246666af0a5dbd/third_party/blink/renderer/bindings/core/v8/script_wrappable_marking_visitor_test.cc [modify] https://crrev.com/0d7212e1cb00f9ffd686c5b633246666af0a5dbd/third_party/blink/renderer/bindings/core/v8/script_wrappable_v8_gc_integration_test.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/061b43d439b73118a3ab0ad166c5c39fd554ef73 commit 061b43d439b73118a3ab0ad166c5c39fd554ef73 Author: Michael Lippautz <mlippautz@chromium.org> Date: Mon Oct 22 13:41:15 2018 [unified-heap] Adjust ScriptPromiseProperty GC test The test checks that the JS wrapper gets collected while the C++ wrappable stays alive. This only worked by accident as wrapper tracing does not see any stack pointers. Adjust test to check that the JS wrapper gets collected as soon as the C++ wrappable is cleared. Bug: 843903 Change-Id: I2041f682f4a94d690f43292f70ea3e8d7fb3fd6b Reviewed-on: https://chromium-review.googlesource.com/c/1293450 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#601554} [modify] https://crrev.com/061b43d439b73118a3ab0ad166c5c39fd554ef73/third_party/blink/renderer/bindings/core/v8/script_promise_property_test.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6440ae98eec736dda37998cc68f0aea67c35ab04 commit 6440ae98eec736dda37998cc68f0aea67c35ab04 Author: Michael Lippautz <mlippautz@chromium.org> Date: Mon Oct 22 16:23:18 2018 [unified-heap] Disable more ScriptWrappableMarkingVisitor tests Most tests depend on the intercepting scope that sets a temporary visitor and restores the fixed wrapper tracing visitor. Avoid executing those tests with unified heap as they anyways become obsolete after launch. Tbr: haraken@chromium.org Bug: 843903 Change-Id: If106c9c873ab07d1bf2219454a25710a3dab6e2f Reviewed-on: https://chromium-review.googlesource.com/c/1293577 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#601607} [modify] https://crrev.com/6440ae98eec736dda37998cc68f0aea67c35ab04/third_party/blink/renderer/bindings/core/v8/script_wrappable_marking_visitor_test.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/37084183eb30d55d06f3d6864ca08917cd18c515 commit 37084183eb30d55d06f3d6864ca08917cd18c515 Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue Oct 23 12:32:22 2018 [unified-heap] Remove obsolete tests - LayoutWorklet and PaintWorklet are supplements to LocalDOMWindow which ties the lifetime of JS wrappers to the lifetime of the window - TransformStreamTest does not crash anymore Bug: 843903 Change-Id: Iea6d46f32fd22d10aa3581ff0712778d4c9ca6ba Reviewed-on: https://chromium-review.googlesource.com/c/1296591 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#601920} [modify] https://crrev.com/37084183eb30d55d06f3d6864ca08917cd18c515/third_party/blink/renderer/core/layout/custom/layout_worklet_test.cc [modify] https://crrev.com/37084183eb30d55d06f3d6864ca08917cd18c515/third_party/blink/renderer/core/streams/transform_stream_test.cc [modify] https://crrev.com/37084183eb30d55d06f3d6864ca08917cd18c515/third_party/blink/renderer/modules/csspaint/paint_worklet_test.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/3f850f4da08e9beb564e1b0cf93950e7b49d5348 commit 3f850f4da08e9beb564e1b0cf93950e7b49d5348 Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue Oct 23 16:53:15 2018 [unified-heap] Call TraceEpilogue at the end of a MC GC Marking resets global handles which touches the corresponding slots on the embedder side. The embedder may already have freed the memory which results in use after free. Bug: chromium:843903 Change-Id: I05a62f28d801b4de167f6fbf1be29743544c1293 Reviewed-on: https://chromium-review.googlesource.com/c/1296457 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#56911} [modify] https://crrev.com/3f850f4da08e9beb564e1b0cf93950e7b49d5348/src/heap-symbols.h [modify] https://crrev.com/3f850f4da08e9beb564e1b0cf93950e7b49d5348/src/heap/gc-tracer.cc [modify] https://crrev.com/3f850f4da08e9beb564e1b0cf93950e7b49d5348/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4450f4cad1ecd5563934567277a8646b656abb57 commit 4450f4cad1ecd5563934567277a8646b656abb57 Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue Oct 30 14:27:43 2018 [unified-heap] Fix ListenerLeakTest.* unit tests The tests execute GC from JS which is not sufficient for unifiedh heap. The fix adds proper GCs before asserting that the leak is not present. Bug: 843903 Change-Id: Ieecf14acdbec96ebb6f612523ca0fa12aba92ad2 Reviewed-on: https://chromium-review.googlesource.com/c/1307395 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#603892} [modify] https://crrev.com/4450f4cad1ecd5563934567277a8646b656abb57/third_party/blink/renderer/core/dom/events/listener_leak_test.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ed49eab5b535ca598fb1fe97f6e06649c47785b9 commit ed49eab5b535ca598fb1fe97f6e06649c47785b9 Author: Michael Lippautz <mlippautz@chromium.org> Date: Mon Nov 05 21:44:28 2018 [unified-heap] Adjust test expectations This is a fixup after commits related to crbug.com/887148 Tbr: haraken@chromium.org No-try: true Bug: chromium:843903 Change-Id: I58530721a40968bd31db08ce5adda9a7b87a9157 Reviewed-on: https://chromium-review.googlesource.com/c/1317898 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#605477} [modify] https://crrev.com/ed49eab5b535ca598fb1fe97f6e06649c47785b9/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=HeapUnifiedGarbageCollection/fast/dom/StyleSheet/gc-rule-children-wrappers-expected.txt [modify] https://crrev.com/ed49eab5b535ca598fb1fe97f6e06649c47785b9/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=HeapUnifiedGarbageCollection/fast/dom/gc-9-expected.txt
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a8228cdc699831699180ecd3b327366305c830d2 commit a8228cdc699831699180ecd3b327366305c830d2 Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue Nov 06 09:04:15 2018 Enable unified garbage collections Enables unified heap garbage collection across V8 and Blink. The GC computes a single transitive closure across V8's API boundary before starting the separate sweepers. Sheriffs: This is a dry-run of the feature and will be reverted after cycling through the waterfall and performance bots. Bug: 843903 Change-Id: I0d3e9fc76fa9b116f32d92a234c45afe11120cf9 Reviewed-on: https://chromium-review.googlesource.com/c/1290869 Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#605634} [modify] https://crrev.com/a8228cdc699831699180ecd3b327366305c830d2/third_party/blink/renderer/platform/runtime_enabled_features.json5
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7f2dee6e466bd5b35bc599570bbfd80b2313fe7d commit 7f2dee6e466bd5b35bc599570bbfd80b2313fe7d Author: Michael Lippautz <mlippautz@chromium.org> Date: Thu Nov 08 05:52:20 2018 LayoutTests: Adjust webaudio test for unified heap garbage collection Use asyncGC instead of window.gc(). Bug: 843903 Change-Id: Id65e65d4b3cd68a1510b3d7aff759232fc6c972b Reviewed-on: https://chromium-review.googlesource.com/c/1324616 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Cr-Commit-Position: refs/heads/master@{#606358} [modify] https://crrev.com/7f2dee6e466bd5b35bc599570bbfd80b2313fe7d/third_party/WebKit/LayoutTests/webaudio/internals/cycle-connection-gc.html
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/79ffe683c7cc22ab3478b119adcc9b49584bd9e2 commit 79ffe683c7cc22ab3478b119adcc9b49584bd9e2 Author: Michael Lippautz <mlippautz@chromium.org> Date: Thu Nov 08 13:36:50 2018 Enable unified garbage collections part two This flag overrides the default Blink value for content layer. Sheriffs: This is a dry-run of the feature and will be reverted after cycling through the waterfall and performance bots. Tbr: jochen@chromium.org, lfg@chromium.org Bug: 843903 Change-Id: Ie362301e4874198eb775346d051bf8267837aaf8 Reviewed-on: https://chromium-review.googlesource.com/c/1320970 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#606446} [modify] https://crrev.com/79ffe683c7cc22ab3478b119adcc9b49584bd9e2/chrome/browser/apps/guest_view/web_view_browsertest.cc [modify] https://crrev.com/79ffe683c7cc22ab3478b119adcc9b49584bd9e2/content/public/common/content_features.cc [modify] https://crrev.com/79ffe683c7cc22ab3478b119adcc9b49584bd9e2/third_party/WebKit/LayoutTests/fast/dom/StyleSheet/gc-rule-children-wrappers-expected.txt [modify] https://crrev.com/79ffe683c7cc22ab3478b119adcc9b49584bd9e2/third_party/WebKit/LayoutTests/fast/dom/gc-9-expected.txt [modify] https://crrev.com/79ffe683c7cc22ab3478b119adcc9b49584bd9e2/third_party/WebKit/LayoutTests/fast/xpath/xpath-iterator-result-should-mark-its-nodeset-expected.txt [modify] https://crrev.com/79ffe683c7cc22ab3478b119adcc9b49584bd9e2/third_party/WebKit/LayoutTests/fast/xpath/xpath-other-nodeset-result-should-mark-its-nodeset-expected.txt [modify] https://crrev.com/79ffe683c7cc22ab3478b119adcc9b49584bd9e2/third_party/WebKit/LayoutTests/fast/xpath/xpath-snapshot-result-should-mark-its-nodeset-expected.txt
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/9453dfbffd2000b3eafab2a59169da733d8cf08a commit 9453dfbffd2000b3eafab2a59169da733d8cf08a Author: Patrik Höglund <phoglund@chromium.org> Date: Fri Nov 09 10:03:45 2018 Revert "Enable unified garbage collections part two" This reverts commit 79ffe683c7cc22ab3478b119adcc9b49584bd9e2. Reason for revert: Speculative revert: lots of garbage-collection related failures on WebKit Linux Trusty ASAN (see https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20ASAN/17912) Original change's description: > Enable unified garbage collections part two > > This flag overrides the default Blink value for content layer. > > Sheriffs: This is a dry-run of the feature and will be reverted after > cycling through the waterfall and performance bots. > > Tbr: jochen@chromium.org, lfg@chromium.org > Bug: 843903 > Change-Id: Ie362301e4874198eb775346d051bf8267837aaf8 > Reviewed-on: https://chromium-review.googlesource.com/c/1320970 > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Kentaro Hara <haraken@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#606446} TBR=haraken@chromium.org,hpayer@chromium.org,mlippautz@chromium.org,jochen@chromium.org,lfg@chromium.org Change-Id: I189aca41c8f8ba11c358a4c15bc7f56591e38196 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 843903 Reviewed-on: https://chromium-review.googlesource.com/c/1328902 Reviewed-by: Patrik Höglund <phoglund@chromium.org> Commit-Queue: Patrik Höglund <phoglund@chromium.org> Cr-Commit-Position: refs/heads/master@{#606778} [modify] https://crrev.com/9453dfbffd2000b3eafab2a59169da733d8cf08a/chrome/browser/apps/guest_view/web_view_browsertest.cc [modify] https://crrev.com/9453dfbffd2000b3eafab2a59169da733d8cf08a/content/public/common/content_features.cc [modify] https://crrev.com/9453dfbffd2000b3eafab2a59169da733d8cf08a/third_party/WebKit/LayoutTests/fast/dom/StyleSheet/gc-rule-children-wrappers-expected.txt [modify] https://crrev.com/9453dfbffd2000b3eafab2a59169da733d8cf08a/third_party/WebKit/LayoutTests/fast/dom/gc-9-expected.txt [modify] https://crrev.com/9453dfbffd2000b3eafab2a59169da733d8cf08a/third_party/WebKit/LayoutTests/fast/xpath/xpath-iterator-result-should-mark-its-nodeset-expected.txt [modify] https://crrev.com/9453dfbffd2000b3eafab2a59169da733d8cf08a/third_party/WebKit/LayoutTests/fast/xpath/xpath-other-nodeset-result-should-mark-its-nodeset-expected.txt [modify] https://crrev.com/9453dfbffd2000b3eafab2a59169da733d8cf08a/third_party/WebKit/LayoutTests/fast/xpath/xpath-snapshot-result-should-mark-its-nodeset-expected.txt
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c36eb8acab5820a2fcaefb9e856b698e3cc0ce52 commit c36eb8acab5820a2fcaefb9e856b698e3cc0ce52 Author: Michael Lippautz <mlippautz@chromium.org> Date: Fri Nov 09 13:24:01 2018 Revert "Enable unified garbage collections" This reverts commit a8228cdc699831699180ecd3b327366305c830d2. Reason for revert: Reverting as we've cycled through the waterfalls and the other flag change on the content layer already got reverted. Original change's description: > Enable unified garbage collections > > Enables unified heap garbage collection across V8 and Blink. The GC > computes a single transitive closure across V8's API boundary before > starting the separate sweepers. > > Sheriffs: This is a dry-run of the feature and will be reverted after > cycling through the waterfall and performance bots. > > Bug: 843903 > Change-Id: I0d3e9fc76fa9b116f32d92a234c45afe11120cf9 > Reviewed-on: https://chromium-review.googlesource.com/c/1290869 > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Reviewed-by: Kentaro Hara <haraken@chromium.org> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#605634} TBR=ulan@chromium.org,haraken@chromium.org,keishi@chromium.org,hpayer@chromium.org,mlippautz@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: 843903 Change-Id: I1d1f695431919864cb15dffe0d9b1e4ba85fd3c5 Reviewed-on: https://chromium-review.googlesource.com/c/1329021 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#606813} [modify] https://crrev.com/c36eb8acab5820a2fcaefb9e856b698e3cc0ce52/third_party/blink/renderer/platform/runtime_enabled_features.json5
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/31aaefcb0e3ea120f59513dd70bee33f493b9cea commit 31aaefcb0e3ea120f59513dd70bee33f493b9cea Author: Michael Lippautz <mlippautz@chromium.org> Date: Fri Nov 09 18:48:45 2018 [unified-heap] Fix CredentialsContainerTest for unified heap GCs Bug: 902286 , 843903 Change-Id: I2f4a836bfb448e092a7301a326c0caed722d607e Reviewed-on: https://chromium-review.googlesource.com/c/1329175 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#606917} [modify] https://crrev.com/31aaefcb0e3ea120f59513dd70bee33f493b9cea/third_party/blink/renderer/modules/credentialmanager/credentials_container_test.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/76c35f614ce131b4ac257f8c15dd45760bf21bb5 commit 76c35f614ce131b4ac257f8c15dd45760bf21bb5 Author: Michael Lippautz <mlippautz@chromium.org> Date: Fri Nov 16 14:40:07 2018 Use phantom handle in GCObservation The GCObservation handle is always set and empty state implies that the observed object was garbage collection. Use phantom reference which avoids clearing out the reference manually. Bug: 903586, 843903 Change-Id: I77e6e9d9ef4625d4bb91b3907b0d1b69c17f2208 Reviewed-on: https://chromium-review.googlesource.com/c/1340320 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#608771} [modify] https://crrev.com/76c35f614ce131b4ac257f8c15dd45760bf21bb5/third_party/blink/renderer/core/testing/gc_observation.cc [modify] https://crrev.com/76c35f614ce131b4ac257f8c15dd45760bf21bb5/third_party/blink/renderer/core/testing/gc_observation.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/e49588461890b06fd5542493eec95c4fe84d5c23 commit e49588461890b06fd5542493eec95c4fe84d5c23 Author: Michael Lippautz <mlippautz@chromium.org> Date: Fri Nov 16 16:26:56 2018 heap: Disallow allocation in first round of weak callbacks Weak callbacks should not trigger recursive GCs during first round callbacks. Any non-trivial work is supposed to be enqueued in the second round of callbacks. Bug: chromium:843903 Change-Id: Ieba58f31bab54c95b7d4027d3e16ee2d765438e7 Reviewed-on: https://chromium-review.googlesource.com/c/1340285 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@{#57581} [modify] https://crrev.com/e49588461890b06fd5542493eec95c4fe84d5c23/src/global-handles.cc [modify] https://crrev.com/e49588461890b06fd5542493eec95c4fe84d5c23/src/global-handles.h [modify] https://crrev.com/e49588461890b06fd5542493eec95c4fe84d5c23/src/heap/heap.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/db7e92145b30f70933c3be2761254bea16acc6ff commit db7e92145b30f70933c3be2761254bea16acc6ff Author: Michael Lippautz <mlippautz@chromium.org> Date: Sat Nov 17 10:51:14 2018 unified-heap: Adjust test expectations No-try: true Tbr: haraken@chromium.org Bug: 843903 Change-Id: I9a130a70247807c593f94eff112d37d043055db2 Reviewed-on: https://chromium-review.googlesource.com/c/1340278 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#609109} [modify] https://crrev.com/db7e92145b30f70933c3be2761254bea16acc6ff/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=HeapUnifiedGarbageCollection/fast/xpath/xpath-iterator-result-should-mark-its-nodeset-expected.txt [modify] https://crrev.com/db7e92145b30f70933c3be2761254bea16acc6ff/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=HeapUnifiedGarbageCollection/fast/xpath/xpath-other-nodeset-result-should-mark-its-nodeset-expected.txt [modify] https://crrev.com/db7e92145b30f70933c3be2761254bea16acc6ff/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=HeapUnifiedGarbageCollection/fast/xpath/xpath-snapshot-result-should-mark-its-nodeset-expected.txt
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/b146824207f2a16ad6678716b99e0476d71e58a0 commit b146824207f2a16ad6678716b99e0476d71e58a0 Author: Michael Lippautz <mlippautz@chromium.org> Date: Mon Nov 19 13:36:49 2018 heap: Move embedder epilogue after first round of weak callbacks Bug: chromium:843903, chromium:903586 Change-Id: I0441ab2cc0fcc0b2cb411be0c92860c64d808324 Reviewed-on: https://chromium-review.googlesource.com/c/1340254 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#57604} [modify] https://crrev.com/b146824207f2a16ad6678716b99e0476d71e58a0/src/heap-symbols.h [modify] https://crrev.com/b146824207f2a16ad6678716b99e0476d71e58a0/src/heap/gc-tracer.cc [modify] https://crrev.com/b146824207f2a16ad6678716b99e0476d71e58a0/src/heap/heap.cc [modify] https://crrev.com/b146824207f2a16ad6678716b99e0476d71e58a0/src/heap/incremental-marking.cc [modify] https://crrev.com/b146824207f2a16ad6678716b99e0476d71e58a0/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/8fdd095e5f68ae6e81ca1f31f45827a44bf508cb commit 8fdd095e5f68ae6e81ca1f31f45827a44bf508cb Author: Camillo Bruni <cbruni@chromium.org> Date: Tue Nov 20 09:23:31 2018 Revert "heap: Move embedder epilogue after first round of weak callbacks" This reverts commit b146824207f2a16ad6678716b99e0476d71e58a0. Reason for revert: breaking blink, v8:8480 Original change's description: > heap: Move embedder epilogue after first round of weak callbacks > > Bug: chromium:843903, chromium:903586 > Change-Id: I0441ab2cc0fcc0b2cb411be0c92860c64d808324 > Reviewed-on: https://chromium-review.googlesource.com/c/1340254 > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57604} TBR=ulan@chromium.org,mlippautz@chromium.org Change-Id: I4f72fb4f6060d814d09fa9d75ff41b5e236c8505 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:843903, chromium:903586 Reviewed-on: https://chromium-review.googlesource.com/c/1342922 Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#57631} [modify] https://crrev.com/8fdd095e5f68ae6e81ca1f31f45827a44bf508cb/src/heap-symbols.h [modify] https://crrev.com/8fdd095e5f68ae6e81ca1f31f45827a44bf508cb/src/heap/gc-tracer.cc [modify] https://crrev.com/8fdd095e5f68ae6e81ca1f31f45827a44bf508cb/src/heap/heap.cc [modify] https://crrev.com/8fdd095e5f68ae6e81ca1f31f45827a44bf508cb/src/heap/incremental-marking.cc [modify] https://crrev.com/8fdd095e5f68ae6e81ca1f31f45827a44bf508cb/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/105f7d92b051a33d957c2da6aeec9bca27f348d9 commit 105f7d92b051a33d957c2da6aeec9bca27f348d9 Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue Nov 20 13:23:32 2018 Reland "heap: Move embedder epilogue after first round of weak callbacks" This is a reland of b146824207f2a16ad6678716b99e0476d71e58a0. Bug: chromium:843903, chromium:903586 Change-Id: Ida59ba4efd3abae6956b99aa104bbc66a3f01fdc Reviewed-on: https://chromium-review.googlesource.com/c/1342924 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#57644} [modify] https://crrev.com/105f7d92b051a33d957c2da6aeec9bca27f348d9/src/heap-symbols.h [modify] https://crrev.com/105f7d92b051a33d957c2da6aeec9bca27f348d9/src/heap/gc-tracer.cc [modify] https://crrev.com/105f7d92b051a33d957c2da6aeec9bca27f348d9/src/heap/heap.cc [modify] https://crrev.com/105f7d92b051a33d957c2da6aeec9bca27f348d9/src/heap/incremental-marking.cc [modify] https://crrev.com/105f7d92b051a33d957c2da6aeec9bca27f348d9/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e7464ad22749d7ca92db1a4a23acad3ebd1f4dfa commit e7464ad22749d7ca92db1a4a23acad3ebd1f4dfa Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue Nov 20 21:18:18 2018 heap: Avoid scheduling other garbage collections during unified heap tl;dr: Write barrier elimination in ctors requires white-allocation of objects. Longer: Avoid scheduling GC calls during object allocation (construction) as they would potentially invoke V8 marking steps. Such a marking step is problematic if the object that is currently being constructed has already been published as constructors rely on white-allocation of objects in order to avoid write barriers for initializing stores. A call to V8 may trigger a marking step which in turn may mark an object black if it already has been published. Bug: 903790, 843903 Change-Id: I9ede36f34f074f76b563601fd4bd1dcb30f561c4 Reviewed-on: https://chromium-review.googlesource.com/c/1341997 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#609806} [modify] https://crrev.com/e7464ad22749d7ca92db1a4a23acad3ebd1f4dfa/third_party/blink/renderer/platform/heap/thread_state.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/caed2cc033b846bab17608318f4073852eaf4f9d commit caed2cc033b846bab17608318f4073852eaf4f9d Author: Michael Lippautz <mlippautz@chromium.org> Date: Thu Nov 22 21:26:02 2018 [heap] Improve embedder tracing during incremental marking Add a path into embedder tracing on allocation. This is safe as as Blink is not allowed to call into V8 during object construction. Bug: chromium:843903 Change-Id: I5af053c3169f5a33778ebce5d7c5c43e4efb1aa4 Reviewed-on: https://chromium-review.googlesource.com/c/1348749 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#57757} [modify] https://crrev.com/caed2cc033b846bab17608318f4073852eaf4f9d/src/heap/embedder-tracing.cc [modify] https://crrev.com/caed2cc033b846bab17608318f4073852eaf4f9d/src/heap/embedder-tracing.h [modify] https://crrev.com/caed2cc033b846bab17608318f4073852eaf4f9d/src/heap/incremental-marking.cc [modify] https://crrev.com/caed2cc033b846bab17608318f4073852eaf4f9d/src/heap/incremental-marking.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/cb93a308fc31298b2a24452fd174bfe86e5fad76 commit cb93a308fc31298b2a24452fd174bfe86e5fad76 Author: Yang Guo <yangguo@chromium.org> Date: Fri Nov 23 07:45:46 2018 Revert "[heap] Improve embedder tracing during incremental marking" This reverts commit caed2cc033b846bab17608318f4073852eaf4f9d. Reason for revert: Breaks layout tests, e.g. https://test-results.appspot.com/data/layout_results/V8-Blink_Linux_64__dbg_/14924/webkit_layout_tests%20%28with%20patch%29/layout-test-results/results.html crash log for renderer (pid <unknown>): STDOUT: <empty> STDERR: STDERR: STDERR: # STDERR: # Fatal error in ../../v8/src/base/platform/elapsed-timer.h, line 24 STDERR: # Debug check failed: !IsStarted(). STDERR: # STDERR: # STDERR: # STDERR: #FailureMessage Object: 0x7ffc46707640#0 0x565409263b6f base::debug::StackTrace::StackTrace() STDERR: #1 0x56540a8a32fb gin::(anonymous namespace)::PrintStackTrace() STDERR: #2 0x56540a8980d8 V8_Fatal() STDERR: #3 0x56540a897e35 v8::base::(anonymous namespace)::DefaultDcheckHandler() STDERR: #4 0x565407971f02 v8::base::ElapsedTimer::Start() STDERR: #5 0x565407d08edf v8::internal::TimedHistogram::Start() STDERR: #6 0x565407e500d5 v8::internal::IncrementalMarking::AdvanceIncrementalMarkingOnAllocation() STDERR: #7 0x565407e4f977 v8::internal::IncrementalMarking::Observer::Step() STDERR: #8 0x565407e48092 v8::internal::AllocationObserver::AllocationStep() STDERR: #9 0x565407eb0751 v8::internal::SpaceWithLinearArea::InlineAllocationStep() STDERR: #10 0x565407eb3e44 v8::internal::NewSpace::EnsureAllocation() STDERR: #11 0x565407e258ff v8::internal::NewSpace::AllocateRaw() STDERR: #12 0x565407e06b2d v8::internal::Heap::AllocateRaw() STDERR: #13 0x565407e432ef v8::internal::Heap::AllocateRawWithLightRetry() STDERR: #14 0x565407e433cf v8::internal::Heap::AllocateRawWithRetryOrFail() STDERR: #15 0x565407e04d48 v8::internal::Factory::NewFixedArrayWithFiller() STDERR: #16 0x565407fd6339 v8::internal::HashTable<>::New() STDERR: #17 0x565407fd7be8 v8::internal::HashTable<>::EnsureCapacity() STDERR: #18 0x565407fc7e95 v8::internal::Dictionary<>::Add() STDERR: #19 0x565407fcf453 v8::internal::BaseNameDictionary<>::Add() STDERR: #20 0x565407f89ee4 v8::internal::LookupIterator::ApplyTransitionToDataProperty() STDERR: #21 0x5654080036e2 v8::internal::Object::AddDataProperty() STDERR: #22 0x56540793061f v8::internal::(anonymous namespace)::DefineDataProperty() STDERR: #23 0x56540792da59 v8::internal::(anonymous namespace)::InstantiateObject() STDERR: #24 0x56540792b75a v8::internal::(anonymous namespace)::InstantiateFunction() STDERR: #25 0x56540792b4db v8::internal::ApiNatives::InstantiateFunction() STDERR: #26 0x5654079594bf v8::FunctionTemplate::GetFunction() STDERR: #27 0x56540a7af74e blink::V8ObjectConstructor::CreateInterfaceObject() STDERR: #28 0x56540a7afe01 blink::V8PerContextData::ConstructorForTypeSlowCase() STDERR: #29 0x56540a7afdd6 blink::V8PerContextData::ConstructorForTypeSlowCase() STDERR: #30 0x56540a7afdd6 blink::V8PerContextData::ConstructorForTypeSlowCase() STDERR: #31 0x56540a7afcb4 blink::V8PerContextData::CreateWrapperFromCacheSlowCase() STDERR: #32 0x56540a7aef73 blink::V8DOMWrapper::CreateWrapper() STDERR: #33 0x56540a7abf6b blink::ScriptWrappable::Wrap() STDERR: #34 0x56540a677199 blink::V8Document::documentElementAttributeGetterCallback() STDERR: #35 0x565407a0aec3 v8::internal::FunctionCallbackArguments::Call() STDERR: #36 0x565407a097be v8::internal::(anonymous namespace)::HandleApiCallHelper<>() STDERR: #37 0x565407a0877b v8::internal::Builtins::InvokeApiFunction() STDERR: #38 0x565407fe785a v8::internal::Object::GetPropertyWithAccessor() STDERR: #39 0x565407fe697e v8::internal::Object::GetProperty() STDERR: #40 0x565407ec8c71 v8::internal::LoadIC::Load() STDERR: #41 0x565407ed6401 v8::internal::__RT_impl_Runtime_LoadIC_Miss() STDERR: #42 0x5654087593f2 <unknown> STDERR: [16162:16185:1122/143518.356897:WARNING:crash_handler_host_linux.cc(341)] Could not translate tid, attempt = 1 retry ... Original change's description: > [heap] Improve embedder tracing during incremental marking > > Add a path into embedder tracing on allocation. This is safe as as Blink > is not allowed to call into V8 during object construction. > > Bug: chromium:843903 > Change-Id: I5af053c3169f5a33778ebce5d7c5c43e4efb1aa4 > Reviewed-on: https://chromium-review.googlesource.com/c/1348749 > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57757} TBR=ulan@chromium.org,mlippautz@chromium.org Change-Id: Ide2c0b284b52bee17573adcc89f14be4e40dab91 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:843903 Reviewed-on: https://chromium-review.googlesource.com/c/1349189 Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#57759} [modify] https://crrev.com/cb93a308fc31298b2a24452fd174bfe86e5fad76/src/heap/embedder-tracing.cc [modify] https://crrev.com/cb93a308fc31298b2a24452fd174bfe86e5fad76/src/heap/embedder-tracing.h [modify] https://crrev.com/cb93a308fc31298b2a24452fd174bfe86e5fad76/src/heap/incremental-marking.cc [modify] https://crrev.com/cb93a308fc31298b2a24452fd174bfe86e5fad76/src/heap/incremental-marking.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/81b5f713c8f6e09ea23f5cb5bea25c8060354f13 commit 81b5f713c8f6e09ea23f5cb5bea25c8060354f13 Author: Michael Lippautz <mlippautz@chromium.org> Date: Fri Nov 23 10:54:52 2018 Reland "[heap] Improve embedder tracing during incremental marking" Add a path into embedder tracing on allocation. This is safe as as Blink is not allowed to call into V8 during object construction. This is a reland of caed2cc033b846bab17608318f4073852eaf4f9d. Bug: chromium:843903 Change-Id: I7faa8413966f6b4d37f19b235d46bb09e4d47235 Bug: chromium:843903 Reviewed-on: https://chromium-review.googlesource.com/c/1349330 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#57770} [modify] https://crrev.com/81b5f713c8f6e09ea23f5cb5bea25c8060354f13/src/heap/embedder-tracing.cc [modify] https://crrev.com/81b5f713c8f6e09ea23f5cb5bea25c8060354f13/src/heap/embedder-tracing.h [modify] https://crrev.com/81b5f713c8f6e09ea23f5cb5bea25c8060354f13/src/heap/incremental-marking.cc [modify] https://crrev.com/81b5f713c8f6e09ea23f5cb5bea25c8060354f13/src/heap/incremental-marking.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/ce02d86bf2dd407c0c40df44441d28b89d4db71f commit ce02d86bf2dd407c0c40df44441d28b89d4db71f Author: Michael Lippautz <mlippautz@chromium.org> Date: Fri Nov 23 17:40:39 2018 [heap] Cleanup embedder tracing APIs Provide processing scope that makes it impossible to maintain locally cached wrappers that could get invalidated in Blink and yield in crashers. Bug: chromium:843903, v8:8238 Change-Id: I7ba1905f6c77a97bcc61ac42f921dcac4772471f Reviewed-on: https://chromium-review.googlesource.com/c/1349276 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#57795} [modify] https://crrev.com/ce02d86bf2dd407c0c40df44441d28b89d4db71f/src/heap/embedder-tracing.cc [modify] https://crrev.com/ce02d86bf2dd407c0c40df44441d28b89d4db71f/src/heap/embedder-tracing.h [modify] https://crrev.com/ce02d86bf2dd407c0c40df44441d28b89d4db71f/src/heap/heap.cc [modify] https://crrev.com/ce02d86bf2dd407c0c40df44441d28b89d4db71f/src/heap/heap.h [modify] https://crrev.com/ce02d86bf2dd407c0c40df44441d28b89d4db71f/src/heap/incremental-marking.cc [modify] https://crrev.com/ce02d86bf2dd407c0c40df44441d28b89d4db71f/src/heap/mark-compact-inl.h [modify] https://crrev.com/ce02d86bf2dd407c0c40df44441d28b89d4db71f/src/heap/mark-compact.cc [modify] https://crrev.com/ce02d86bf2dd407c0c40df44441d28b89d4db71f/src/heap/mark-compact.h [modify] https://crrev.com/ce02d86bf2dd407c0c40df44441d28b89d4db71f/src/heap/scavenger.cc [modify] https://crrev.com/ce02d86bf2dd407c0c40df44441d28b89d4db71f/test/unittests/heap/embedder-tracing-unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0e78f9bbaedea30c607f198b4bfb8c3c027af331 commit 0e78f9bbaedea30c607f198b4bfb8c3c027af331 Author: Michael Lippautz <mlippautz@chromium.org> Date: Mon Nov 26 12:16:48 2018 heap: Refactor bits in HeapObjectHeader - Free up unusued "is free bit". This information was double encoded in the header. - Use uint32_t for masks to allow the compiler to help with out of bounds shifts. - Reorder declarations in HoH. Bug: 843903 Change-Id: Ibd6a95ef9b38c41ed469f91ff07d35a0738082d1 Reviewed-on: https://chromium-review.googlesource.com/c/1350613 Reviewed-by: Kentaro Hara <haraken@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#610825} [modify] https://crrev.com/0e78f9bbaedea30c607f198b4bfb8c3c027af331/third_party/blink/renderer/platform/heap/heap_page.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/c32a378f4806236a10c563a1fbf576222dfd695d commit c32a378f4806236a10c563a1fbf576222dfd695d Author: Michael Lippautz <mlippautz@chromium.org> Date: Mon Nov 26 17:44:10 2018 [heap] Reland improvements for embedder tracing Add a path into embedder tracing on allocation. This is safe as as Blink is not allowed to call into V8 during object construction. This is a reland of caed2cc033b846bab17608318f4073852eaf4f9d. Also relands the cleanups of ce02d86bf2dd407c0c40df44441d28b89d4db71f. Bug: chromium:843903 Change-Id: Ic89792fe68337c540a1a93629aee2e92b8774ab2 Reviewed-on: https://chromium-review.googlesource.com/c/1350992 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#57847} [modify] https://crrev.com/c32a378f4806236a10c563a1fbf576222dfd695d/src/heap/embedder-tracing.cc [modify] https://crrev.com/c32a378f4806236a10c563a1fbf576222dfd695d/src/heap/embedder-tracing.h [modify] https://crrev.com/c32a378f4806236a10c563a1fbf576222dfd695d/src/heap/heap.cc [modify] https://crrev.com/c32a378f4806236a10c563a1fbf576222dfd695d/src/heap/heap.h [modify] https://crrev.com/c32a378f4806236a10c563a1fbf576222dfd695d/src/heap/incremental-marking.cc [modify] https://crrev.com/c32a378f4806236a10c563a1fbf576222dfd695d/src/heap/incremental-marking.h [modify] https://crrev.com/c32a378f4806236a10c563a1fbf576222dfd695d/src/heap/mark-compact-inl.h [modify] https://crrev.com/c32a378f4806236a10c563a1fbf576222dfd695d/src/heap/mark-compact.cc [modify] https://crrev.com/c32a378f4806236a10c563a1fbf576222dfd695d/src/heap/mark-compact.h [modify] https://crrev.com/c32a378f4806236a10c563a1fbf576222dfd695d/src/heap/scavenger.cc [modify] https://crrev.com/c32a378f4806236a10c563a1fbf576222dfd695d/test/unittests/heap/embedder-tracing-unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e2059e53bea9548648de1ce7e06e239b89f2c580 commit e2059e53bea9548648de1ce7e06e239b89f2c580 Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed Nov 28 11:59:04 2018 heap: Introduce not fully constructed state for objects during ctor Use the MakeGarbageCollected bottleneck to flag objects as being under construction while their constructor is executed. can be recovered once we are done moving to MakeGarbagecollected by opening the scope in the allocator (HoH ctor). Binary-Size: Increase due to adding scope to constructors. Roughly 50% Bug: 843903 Change-Id: I0a5182481534922ba14c6c12ed7138dadbcadea5 Reviewed-on: https://chromium-review.googlesource.com/c/1350128 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#611659} [modify] https://crrev.com/e2059e53bea9548648de1ce7e06e239b89f2c580/third_party/blink/renderer/platform/heap/heap.h [modify] https://crrev.com/e2059e53bea9548648de1ce7e06e239b89f2c580/third_party/blink/renderer/platform/heap/heap_page.h [modify] https://crrev.com/e2059e53bea9548648de1ce7e06e239b89f2c580/third_party/blink/renderer/platform/heap/heap_test.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/5748a22fa06599f848c27fbc118f8f6ac0882011 commit 5748a22fa06599f848c27fbc118f8f6ac0882011 Author: Michael Lippautz <mlippautz@chromium.org> Date: Thu Nov 29 16:28:38 2018 [heap] Fix context disposal heap limit Fix two bugs: - Initial configuration of limit allowed to go below the size of already allocated objects. - Context disposal without dependend context reset the heap state to not configured without actually increasing the limit again. Bug: chromium:843903 Change-Id: Ibdcf69b0b92b800f8919d5cc98186334945d811f Reviewed-on: https://chromium-review.googlesource.com/c/1355143 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#57946} [modify] https://crrev.com/5748a22fa06599f848c27fbc118f8f6ac0882011/src/heap/heap.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8a63e4698483c2f8930a8fbf74481af1138f4af3 commit 8a63e4698483c2f8930a8fbf74481af1138f4af3 Author: Michael Lippautz <mlippautz@chromium.org> Date: Fri Nov 30 17:18:29 2018 unified-heap: Avoid scheduling a stand-alone GC after a V8 GC Bug: 843903 Change-Id: I24d73949caec0b2ea55cf6cfa058cbf5f7d2826a Reviewed-on: https://chromium-review.googlesource.com/c/1355941 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#612681} [modify] https://crrev.com/8a63e4698483c2f8930a8fbf74481af1138f4af3/third_party/blink/renderer/platform/heap/thread_state.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/66b80e0ba23a6b4693231d3bfd989296cbb6177a commit 66b80e0ba23a6b4693231d3bfd989296cbb6177a Author: Michael Lippautz <mlippautz@chromium.org> Date: Fri Nov 30 20:58:46 2018 heap: Add flushing of not fully constructed objects Upon entering an incremental step without stack such objects can be flushed to a worklist that is processed in the regular marking loop as the objects are definitely constructed at this point. Bug: 843903 Change-Id: Ie4acbb7a58e7bedaee3b7806bdd18ca306ff14d7 Reviewed-on: https://chromium-review.googlesource.com/c/1350751 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#612780} [modify] https://crrev.com/66b80e0ba23a6b4693231d3bfd989296cbb6177a/third_party/blink/renderer/platform/heap/heap.cc [modify] https://crrev.com/66b80e0ba23a6b4693231d3bfd989296cbb6177a/third_party/blink/renderer/platform/heap/heap.h [modify] https://crrev.com/66b80e0ba23a6b4693231d3bfd989296cbb6177a/third_party/blink/renderer/platform/heap/marking_visitor.cc [modify] https://crrev.com/66b80e0ba23a6b4693231d3bfd989296cbb6177a/third_party/blink/renderer/platform/heap/marking_visitor.h [modify] https://crrev.com/66b80e0ba23a6b4693231d3bfd989296cbb6177a/third_party/blink/renderer/platform/heap/thread_state.cc [modify] https://crrev.com/66b80e0ba23a6b4693231d3bfd989296cbb6177a/third_party/blink/renderer/platform/heap/thread_state.h [modify] https://crrev.com/66b80e0ba23a6b4693231d3bfd989296cbb6177a/third_party/blink/renderer/platform/heap/worklist.h [modify] https://crrev.com/66b80e0ba23a6b4693231d3bfd989296cbb6177a/third_party/blink/renderer/platform/lifecycle_context_test.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/72806449de1bfcb61ebee0bdc30d9e3115413495 commit 72806449de1bfcb61ebee0bdc30d9e3115413495 Author: Michael Lippautz <mlippautz@chromium.org> Date: Fri Dec 07 13:50:02 2018 [heap] Improve incremental steps on allocation Allow a V8 step after doing an embedder step if there's time left. This will speed up marking in certain situations. Bug: chromium:909788, chromium:911053, chromium:843903 Change-Id: Ie15c30d5ce8443caf7217a834a120a19d0bb292b Reviewed-on: https://chromium-review.googlesource.com/c/1367455 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#58094} [modify] https://crrev.com/72806449de1bfcb61ebee0bdc30d9e3115413495/src/heap/incremental-marking.cc [modify] https://crrev.com/72806449de1bfcb61ebee0bdc30d9e3115413495/src/heap/incremental-marking.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7c0021aecaf0f5e0a46108b02d0e408e5bfad1e0 commit 7c0021aecaf0f5e0a46108b02d0e408e5bfad1e0 Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed Dec 12 09:37:25 2018 heap: Filter already marked weak handles The write barrier will ensure that newly set values will be marked black in any case and thus make the callback obsolete. Bug: 843903 Change-Id: I058df9c4e21ba4a5045ea6890b5ee8d5b0e7fc27 Reviewed-on: https://chromium-review.googlesource.com/c/1372788 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#615835} [modify] https://crrev.com/7c0021aecaf0f5e0a46108b02d0e408e5bfad1e0/third_party/blink/renderer/platform/heap/marking_visitor.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7747a15375ee878f393196ea95e5a19a7a40c532 commit 7747a15375ee878f393196ea95e5a19a7a40c532 Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue Dec 18 20:35:06 2018 heap: Avoid copying WeakMember during roots iteration Weak members currently emit a write barrier upon copy construction. Copying WeakMember<T> on the stack during roots iteration will make all active ScriptWrappables links that are weak strong. Tbr: haraken@chromium.org Bug: 843903, 916200 Change-Id: I13a6512cdd1c8b03397b95665de8bcd83e263e69 Reviewed-on: https://chromium-review.googlesource.com/c/1382918 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#617609} [modify] https://crrev.com/7747a15375ee878f393196ea95e5a19a7a40c532/third_party/blink/renderer/platform/bindings/active_script_wrappable_base.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/fef54404fdd0daf26f41778fa883adf6d8857f1e commit fef54404fdd0daf26f41778fa883adf6d8857f1e Author: Michael Lippautz <mlippautz@chromium.org> Date: Sat Dec 22 19:34:21 2018 Update TraceWrapperV8Reference - Update class comment - Remove Set method that takes custom callbacks as all of its uses have been converted to phantom handles that are cleared by the GC. Bug: 843903 Change-Id: I3d772d6486b2908402ba9ff5df49cd796f497616 Reviewed-on: https://chromium-review.googlesource.com/c/1388426 Reviewed-by: Yuki Shiino <yukishiino@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#618762} [modify] https://crrev.com/fef54404fdd0daf26f41778fa883adf6d8857f1e/third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/70fdf149b21a80c12fe2ce669b5774af1dc550b6 commit 70fdf149b21a80c12fe2ce669b5774af1dc550b6 Author: Michael Lippautz <mlippautz@chromium.org> Date: Mon Jan 07 19:07:24 2019 bindings: Convert DOMObjectHolder user to CustomWrappableAdapter This is *not* a correctness fix but merely a refactoring to a different approach. Both, DOMObjectHolder and CustomWrappableAdapter, serve the same purpose: They keep alive a DOM object from a JS object. Since CustomWrappableAdapter is already used for JS callbacks it fits well and replaces one use of custom weak callbacks. On top of that, CustomWrappableAdapter creates a V8 Persistent instead of a "temporary" Oilpan root in a hashmap. On master there's no real difference as both are root sets for Oilpan visitation. Unified heap does not need to visit V8 persistents as roots, so it's cheaper in the new world. Change-Id: I12ddde7e6ec1a21204826c8c4d35acea24965e0f Bug: 843903 Reviewed-on: https://chromium-review.googlesource.com/c/1396023 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Reviewed-by: Yuki Shiino <yukishiino@chromium.org> Cr-Commit-Position: refs/heads/master@{#620409} [modify] https://crrev.com/70fdf149b21a80c12fe2ce669b5774af1dc550b6/third_party/blink/renderer/bindings/core/v8/custom_wrappable_adapter.cc [modify] https://crrev.com/70fdf149b21a80c12fe2ce669b5774af1dc550b6/third_party/blink/renderer/bindings/core/v8/custom_wrappable_adapter.h [modify] https://crrev.com/70fdf149b21a80c12fe2ce669b5774af1dc550b6/third_party/blink/renderer/bindings/core/v8/js_event_handler.cc [modify] https://crrev.com/70fdf149b21a80c12fe2ce669b5774af1dc550b6/third_party/blink/renderer/bindings/core/v8/js_event_handler.h [modify] https://crrev.com/70fdf149b21a80c12fe2ce669b5774af1dc550b6/third_party/blink/renderer/bindings/core/v8/js_event_listener.h [modify] https://crrev.com/70fdf149b21a80c12fe2ce669b5774af1dc550b6/third_party/blink/renderer/bindings/core/v8/script_function.cc [modify] https://crrev.com/70fdf149b21a80c12fe2ce669b5774af1dc550b6/third_party/blink/renderer/bindings/core/v8/script_function.h [modify] https://crrev.com/70fdf149b21a80c12fe2ce669b5774af1dc550b6/third_party/blink/renderer/platform/bindings/dom_wrapper_world.cc [modify] https://crrev.com/70fdf149b21a80c12fe2ce669b5774af1dc550b6/third_party/blink/renderer/platform/bindings/dom_wrapper_world.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d301d39aba4d7ec7a67c982ee3ce1554df40be12 commit d301d39aba4d7ec7a67c982ee3ce1554df40be12 Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue Jan 08 08:59:51 2019 bindings: Improve wrapper tracing through CSS Improves wrapper tracing through CSS rules at the expense of more memory consumption. With unified heap all of these paths would be traced by default. Adjust the tracing paths upfront to get clarity on the actual regressions. Bug: 843903 Change-Id: Ie8273277f5eff4781a776a8fe28981c2dd18e636 Reviewed-on: https://chromium-review.googlesource.com/c/1398443 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#620656} [modify] https://crrev.com/d301d39aba4d7ec7a67c982ee3ce1554df40be12/third_party/blink/renderer/core/css/css_keyframe_rule.h [modify] https://crrev.com/d301d39aba4d7ec7a67c982ee3ce1554df40be12/third_party/blink/renderer/core/css/css_keyframes_rule.h [modify] https://crrev.com/d301d39aba4d7ec7a67c982ee3ce1554df40be12/third_party/blink/renderer/core/dom/element_rare_data.h [modify] https://crrev.com/d301d39aba4d7ec7a67c982ee3ce1554df40be12/third_party/blink/web_tests/fast/dom/StyleSheet/gc-rule-children-wrappers-expected.txt [modify] https://crrev.com/d301d39aba4d7ec7a67c982ee3ce1554df40be12/third_party/blink/web_tests/fast/dom/gc-9-expected.txt [delete] https://crrev.com/3cf9cd8e07ce48b301c6d86e5dead8376ecf765b/third_party/blink/web_tests/flag-specific/enable-blink-features=HeapUnifiedGarbageCollection/fast/dom/StyleSheet/gc-rule-children-wrappers-expected.txt
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8b5acd616f2ddd4ba05dcf5879197d46bc74919b commit 8b5acd616f2ddd4ba05dcf5879197d46bc74919b Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue Jan 08 16:39:46 2019 bindings: Wrapper tracing improvements Another set of wrapper tracing improvements that make unified heap test expectation adjustements obsolete. Bug: 843903 Change-Id: I5f188215b6ddae095dddbbf7726e2ebcf4d47bdc Reviewed-on: https://chromium-review.googlesource.com/c/1401061 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#620753} [modify] https://crrev.com/8b5acd616f2ddd4ba05dcf5879197d46bc74919b/third_party/blink/renderer/core/html/forms/html_output_element.h [modify] https://crrev.com/8b5acd616f2ddd4ba05dcf5879197d46bc74919b/third_party/blink/renderer/core/html/html_iframe_element.h [modify] https://crrev.com/8b5acd616f2ddd4ba05dcf5879197d46bc74919b/third_party/blink/renderer/core/html/html_link_element.h [modify] https://crrev.com/8b5acd616f2ddd4ba05dcf5879197d46bc74919b/third_party/blink/web_tests/fast/dom/gc-9-expected.txt [delete] https://crrev.com/810144f1502198bb66cd265a2ce9a16ccd106dd2/third_party/blink/web_tests/flag-specific/enable-blink-features=HeapUnifiedGarbageCollection/fast/dom/gc-9-expected.txt
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/59de2eec4b0adab7b4053109eb710dc1274deb78 commit 59de2eec4b0adab7b4053109eb710dc1274deb78 Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed Jan 09 13:28:10 2019 unified-heap: Fix customelements/gc.html The GCs performed in this test have been conservative and occasionally kept alive the wrappers resulting in flaky test failures with unified GCs. Bug: 843903 Change-Id: I51a6abb8dd8d24f7db3fe189a66b1e2d13ebc60a Reviewed-on: https://chromium-review.googlesource.com/c/1402796 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#621125} [modify] https://crrev.com/59de2eec4b0adab7b4053109eb710dc1274deb78/third_party/blink/web_tests/custom-elements/gc.html
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/43ae85f867e407a557e0e7671cbcc07dd2688e16 commit 43ae85f867e407a557e0e7671cbcc07dd2688e16 Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed Jan 16 10:09:21 2019 unified-heap: Provide names for internal classes in heap snapshot Provide a name for internal nodes in non-production builds. This is very useful for manual debugging builds but may confuse people without providing better DevTools integration. Bug: 843903 Change-Id: Ifd7359575beb3c916a86fc6091abfc20c76e6b64 Reviewed-on: https://chromium-review.googlesource.com/c/1412472 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Cr-Commit-Position: refs/heads/master@{#623177} [modify] https://crrev.com/43ae85f867e407a557e0e7671cbcc07dd2688e16/third_party/blink/renderer/platform/heap/name_trait_test.cc [modify] https://crrev.com/43ae85f867e407a557e0e7671cbcc07dd2688e16/third_party/blink/renderer/platform/heap/name_traits.h [modify] https://crrev.com/43ae85f867e407a557e0e7671cbcc07dd2688e16/third_party/blink/web_tests/inspector-protocol/heap-profiler/heap-snapshot-merged-nodes.js [modify] https://crrev.com/43ae85f867e407a557e0e7671cbcc07dd2688e16/third_party/blink/web_tests/inspector-protocol/heap-profiler/heap-snapshot-with-event-listener.js [modify] https://crrev.com/43ae85f867e407a557e0e7671cbcc07dd2688e16/third_party/blink/web_tests/inspector-protocol/heap-profiler/heap-snapshot-with-multiple-retainers.js
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2118b79f4f9da15cfaafb82c0a5f4e3dedf439be commit 2118b79f4f9da15cfaafb82c0a5f4e3dedf439be Author: Michael Lippautz <mlippautz@chromium.org> Date: Fri Jan 18 11:13:01 2019 bindings: Improve wrapper tracing for window.performance - This removes the restriction of not being able to swap and move construct HeapVector<TraceWrapperMember<T>>. - Building on this wrapper tracing cannot properly find links through window.performance. This CL is meant to close the gap between wrapper tracing and unified heap garbage collection wrt. memory usage. Bug: 843903 Change-Id: I699a5fcb8f6f2d63d3d6a908692bdf26d1f7901f Reviewed-on: https://chromium-review.googlesource.com/c/1412820 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Cr-Commit-Position: refs/heads/master@{#624069} [modify] https://crrev.com/2118b79f4f9da15cfaafb82c0a5f4e3dedf439be/third_party/blink/renderer/core/css/style_sheet_collection.cc [modify] https://crrev.com/2118b79f4f9da15cfaafb82c0a5f4e3dedf439be/third_party/blink/renderer/core/timing/performance.h [modify] https://crrev.com/2118b79f4f9da15cfaafb82c0a5f4e3dedf439be/third_party/blink/renderer/core/timing/performance_observer.h [modify] https://crrev.com/2118b79f4f9da15cfaafb82c0a5f4e3dedf439be/third_party/blink/renderer/core/timing/performance_observer_entry_list.cc [modify] https://crrev.com/2118b79f4f9da15cfaafb82c0a5f4e3dedf439be/third_party/blink/renderer/core/timing/performance_observer_entry_list.h [modify] https://crrev.com/2118b79f4f9da15cfaafb82c0a5f4e3dedf439be/third_party/blink/renderer/platform/bindings/script_wrappable_marking_visitor.h [modify] https://crrev.com/2118b79f4f9da15cfaafb82c0a5f4e3dedf439be/third_party/blink/renderer/platform/bindings/trace_wrapper_member.h [modify] https://crrev.com/2118b79f4f9da15cfaafb82c0a5f4e3dedf439be/third_party/blink/renderer/platform/heap/heap_allocator.h [modify] https://crrev.com/2118b79f4f9da15cfaafb82c0a5f4e3dedf439be/third_party/blink/renderer/platform/wtf/allocator/partition_allocator.h [modify] https://crrev.com/2118b79f4f9da15cfaafb82c0a5f4e3dedf439be/third_party/blink/renderer/platform/wtf/vector.h