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

Issue 757440 link

Starred by 7 users

Issue metadata

Status: Fixed
Owner:
Closed: Nov 30
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 3
Type: Feature


Sign in to add a comment

Implement incremental marking in Oilpan

Project Member Reported by mlippautz@chromium.org, Aug 21 2017

Issue description

This issue tracks the progress of implementing incremental marking in Oilpan.
 
Showing comments 85 - 184 of 184 Older
Project Member

Comment 85 by bugdroid1@chromium.org, Apr 4 2018

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

commit 0ce3313cc995916da0b54adf440f4ec468298124
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed Apr 04 07:25:10 2018

[oilpan] Enable heap verification for incremental marking

Enables heap verification when running in the incremental marking configuration.

No-try: true
Bug:  chromium:757440 
Change-Id: I4bc75ac0779021e34d0e637192157695567e825c
Reviewed-on: https://chromium-review.googlesource.com/993056
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#547998}
[modify] https://crrev.com/0ce3313cc995916da0b54adf440f4ec468298124/third_party/WebKit/Source/platform/heap/BUILD.gn
[modify] https://crrev.com/0ce3313cc995916da0b54adf440f4ec468298124/third_party/WebKit/Source/platform/heap/HeapPage.cpp

Project Member

Comment 86 by bugdroid1@chromium.org, Apr 4 2018

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

commit fdd33088beafe06beebd337e58e1fdc77f527c2f
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed Apr 04 13:25:01 2018

[oilpan] Faster write barrier guard

Add a general counter for threads that are currently in incremental
marking.

This guard can be checked as first reason for bailing out in any write
barrier as it only requires a single load and does not need to go
through TLS or page lookups.

Bug:  chromium:757440 
Change-Id: Ida63e560bb52ccd66da739139c0510229b05a550
Reviewed-on: https://chromium-review.googlesource.com/995272
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#548033}
[modify] https://crrev.com/fdd33088beafe06beebd337e58e1fdc77f527c2f/third_party/WebKit/Source/platform/heap/Heap.cpp
[modify] https://crrev.com/fdd33088beafe06beebd337e58e1fdc77f527c2f/third_party/WebKit/Source/platform/heap/Heap.h
[modify] https://crrev.com/fdd33088beafe06beebd337e58e1fdc77f527c2f/third_party/WebKit/Source/platform/heap/HeapAllocator.h
[modify] https://crrev.com/fdd33088beafe06beebd337e58e1fdc77f527c2f/third_party/WebKit/Source/platform/heap/HeapPage.cpp
[modify] https://crrev.com/fdd33088beafe06beebd337e58e1fdc77f527c2f/third_party/WebKit/Source/platform/heap/HeapPage.h
[modify] https://crrev.com/fdd33088beafe06beebd337e58e1fdc77f527c2f/third_party/WebKit/Source/platform/heap/IncrementalMarkingTest.cpp
[modify] https://crrev.com/fdd33088beafe06beebd337e58e1fdc77f527c2f/third_party/WebKit/Source/platform/heap/Member.h
[modify] https://crrev.com/fdd33088beafe06beebd337e58e1fdc77f527c2f/third_party/WebKit/Source/platform/heap/ThreadState.cpp
[modify] https://crrev.com/fdd33088beafe06beebd337e58e1fdc77f527c2f/third_party/WebKit/Source/platform/heap/ThreadState.h

Project Member

Comment 87 by bugdroid1@chromium.org, Apr 4 2018

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

commit df7973c46ecc157e63f710177eac3cdb02bc089c
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed Apr 04 20:42:32 2018

[oilpan] Avoid individual write barriers when swapping backing stores

The backing store write barrier is enough.

Bug:  chromium:757440 
Change-Id: Id7aa827b2777b4060d4a5c6e2ba0849095f50abd
Reviewed-on: https://chromium-review.googlesource.com/995477
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#548184}
[modify] https://crrev.com/df7973c46ecc157e63f710177eac3cdb02bc089c/third_party/WebKit/Source/platform/heap/IncrementalMarkingTest.cpp
[modify] https://crrev.com/df7973c46ecc157e63f710177eac3cdb02bc089c/third_party/WebKit/Source/platform/wtf/HashTable.h
[modify] https://crrev.com/df7973c46ecc157e63f710177eac3cdb02bc089c/third_party/WebKit/Source/platform/wtf/Vector.h

Project Member

Comment 88 by bugdroid1@chromium.org, Apr 5 2018

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

commit 1e1a0e3002ef6767749cd38dbd2f90caca0c3978
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Apr 05 13:09:53 2018

[oilpan] Incremental marking: DCHECK for deleted values

Since df7973c46ecc157e63f710177eac3cdb02bc089c there is no way to
trigger individual write barriers on deleted values, because:
a. write barriers are emitted for complete backing stores and their
   processing already takes care of deleted values
b. for moving and copying the reinsertion takes care of omitting
   deleted values

Bug:  chromium:757440 
Change-Id: I43fb8f43936d471e7ad6d1fb7f0da6c8bd626e52
Reviewed-on: https://chromium-review.googlesource.com/992932
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#548399}
[modify] https://crrev.com/1e1a0e3002ef6767749cd38dbd2f90caca0c3978/third_party/WebKit/Source/platform/heap/HeapAllocator.h
[modify] https://crrev.com/1e1a0e3002ef6767749cd38dbd2f90caca0c3978/third_party/WebKit/Source/platform/heap/IncrementalMarkingTest.cpp
[modify] https://crrev.com/1e1a0e3002ef6767749cd38dbd2f90caca0c3978/third_party/WebKit/Source/platform/heap/Visitor.h
[modify] https://crrev.com/1e1a0e3002ef6767749cd38dbd2f90caca0c3978/third_party/WebKit/Source/platform/wtf/HashTraits.h
[modify] https://crrev.com/1e1a0e3002ef6767749cd38dbd2f90caca0c3978/third_party/WebKit/Source/platform/wtf/VectorTraits.h

Project Member

Comment 89 by bugdroid1@chromium.org, Apr 5 2018

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

commit f13cd25fdd73ee6d0d87ea4e9e7d0565c0d7bdc8
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Apr 05 14:59:17 2018

[oilpan] Fix object start bitmap verification

Verification requires iterability of pages implying that we cannot have
a linear allocation area.

The area was however potentially set up during compaction.

Bug:  chromium:757440 
Change-Id: I9b12ecac032893aaa6d6f022149cec0a6130ebf9
Reviewed-on: https://chromium-review.googlesource.com/997672
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#548421}
[modify] https://crrev.com/f13cd25fdd73ee6d0d87ea4e9e7d0565c0d7bdc8/third_party/WebKit/Source/platform/heap/HeapPage.cpp
[modify] https://crrev.com/f13cd25fdd73ee6d0d87ea4e9e7d0565c0d7bdc8/third_party/WebKit/Source/platform/heap/HeapPage.h

Project Member

Comment 90 by bugdroid1@chromium.org, Apr 5 2018

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

commit a0c28b8a366c961f29e53565c068ef9ea37a0882
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Apr 05 22:07:03 2018

[wrapper-tracing] Fix write barrier test

The test was manually hooking up a wrapper in a non-supported way.
Switch to using the providing bindings methods.

This was flushed out when incremental marking started scanning roots
right after the test and encountered a broken leftover object.

Bug:  chromium:757440 
Change-Id: I0636c48a22d88f2d85ded1ebab2732d3ef6de077
Reviewed-on: https://chromium-review.googlesource.com/997795
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#548581}
[modify] https://crrev.com/a0c28b8a366c961f29e53565c068ef9ea37a0882/third_party/WebKit/Source/bindings/core/v8/ScriptWrappableMarkingVisitorTest.cpp
[modify] https://crrev.com/a0c28b8a366c961f29e53565c068ef9ea37a0882/third_party/WebKit/Source/platform/bindings/V8DOMWrapper.h

Project Member

Comment 91 by bugdroid1@chromium.org, Apr 6 2018

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

commit 73e7ae2870242ecb195b14318700e23e77df0945
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Fri Apr 06 18:00:02 2018

[oilpan] Merge post marking processing into weak processing

Post marking processing assumed that the backing store for weak
HashTable's remains unchanged during marking which is not correct in the
presence of incremental marking.

Since post marking was just marking the header of the backing store this
can be merged into the weak processing steps.

This CL
- Remove Heap::post_marking_worklist_ completely, avoid any memory
  consumption it might require.
- Merges WeakProcessing and PostMarkingProcessing as the post marking
  steps were only used for weak HashTables.

Bug:  chromium:828537 ,  chromium:757440 
Change-Id: I0d0b7552786659becf039419bff3701e7bb72aee
Reviewed-on: https://chromium-review.googlesource.com/999485
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#548854}
[modify] https://crrev.com/73e7ae2870242ecb195b14318700e23e77df0945/third_party/WebKit/Source/platform/heap/Heap.cpp
[modify] https://crrev.com/73e7ae2870242ecb195b14318700e23e77df0945/third_party/WebKit/Source/platform/heap/Heap.h
[modify] https://crrev.com/73e7ae2870242ecb195b14318700e23e77df0945/third_party/WebKit/Source/platform/heap/HeapAllocator.h
[modify] https://crrev.com/73e7ae2870242ecb195b14318700e23e77df0945/third_party/WebKit/Source/platform/heap/IncrementalMarkingTest.cpp
[modify] https://crrev.com/73e7ae2870242ecb195b14318700e23e77df0945/third_party/WebKit/Source/platform/heap/MarkingVerifier.h
[modify] https://crrev.com/73e7ae2870242ecb195b14318700e23e77df0945/third_party/WebKit/Source/platform/heap/MarkingVisitor.cpp
[modify] https://crrev.com/73e7ae2870242ecb195b14318700e23e77df0945/third_party/WebKit/Source/platform/heap/MarkingVisitor.h
[modify] https://crrev.com/73e7ae2870242ecb195b14318700e23e77df0945/third_party/WebKit/Source/platform/heap/ThreadState.cpp
[modify] https://crrev.com/73e7ae2870242ecb195b14318700e23e77df0945/third_party/WebKit/Source/platform/heap/ThreadState.h
[modify] https://crrev.com/73e7ae2870242ecb195b14318700e23e77df0945/third_party/WebKit/Source/platform/heap/Visitor.h
[modify] https://crrev.com/73e7ae2870242ecb195b14318700e23e77df0945/third_party/WebKit/Source/platform/wtf/HashTable.h

Project Member

Comment 92 by bugdroid1@chromium.org, Apr 7 2018

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

commit 321dd6ae9b61d9edcd761c654aeb0cff910cb27b
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Sat Apr 07 10:46:49 2018

[oilpan] Incremental marking: Transition into full garbage collection

Avoid doing two garbage collections back to back.

Bug:  chromium:757440 
Change-Id: I89933906fe055ed368d9d454ce69e4a0aa37ae6f
Reviewed-on: https://chromium-review.googlesource.com/993133
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#549055}
[modify] https://crrev.com/321dd6ae9b61d9edcd761c654aeb0cff910cb27b/third_party/WebKit/Source/platform/heap/ThreadState.cpp

Blockedon: 830196
Project Member

Comment 94 by bugdroid1@chromium.org, Apr 9 2018

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

commit ff278139f629a991fe28c949cb210ef19b9d2997
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Mon Apr 09 11:11:24 2018

[oilpan] Incremental marking: Force another GC for termination

Bug:  chromium:757440 
Change-Id: I7b417e79ba205dc15a83f7ab768f1f47c1840221
Reviewed-on: https://chromium-review.googlesource.com/1002553
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#549149}
[modify] https://crrev.com/ff278139f629a991fe28c949cb210ef19b9d2997/third_party/blink/renderer/platform/heap/thread_state.cc

Project Member

Comment 95 by bugdroid1@chromium.org, Apr 10 2018

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

commit 2da3fcd0c9a8a6ec5504ddbf2293d5b9b8d6122c
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue Apr 10 09:16:52 2018

[oilpan] Filter deleted weakcell slots during incremental marking

Slots may be deleted after recording a callback for them. Filter out
those slots accordingly during processing.

Bug:  chromium:757440 
Change-Id: I23c17c2f79af41a8539b8d4734ec677fb0b99c0b
Reviewed-on: https://chromium-review.googlesource.com/1000865
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#549465}
[modify] https://crrev.com/2da3fcd0c9a8a6ec5504ddbf2293d5b9b8d6122c/third_party/blink/renderer/platform/heap/heap.h

Project Member

Comment 96 by bugdroid1@chromium.org, Apr 10 2018

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

commit b1708929d4af0ee675f4cdcc3782182b3651eddf
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue Apr 10 11:09:16 2018

[oilpan] Reset allocation point before CompleteSweep

Some phases require iterability of a page. This property is already
established before LazySweep during OutOfLineAllocate but was missing in
the case where we completed sweeping for *all* arenas.

Bug:  chromium:757440 
Change-Id: I103b55a0d9dba11574ef56fae38db482f7fdad6a
Reviewed-on: https://chromium-review.googlesource.com/1004581
Reviewed-by: Keishi Hattori <keishi@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#549482}
[modify] https://crrev.com/b1708929d4af0ee675f4cdcc3782182b3651eddf/third_party/blink/renderer/platform/heap/heap_page.cc
[modify] https://crrev.com/b1708929d4af0ee675f4cdcc3782182b3651eddf/third_party/blink/renderer/platform/heap/heap_page.h

Blockedon: 831541
Project Member

Comment 98 by bugdroid1@chromium.org, Apr 12 2018

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

commit 4c835f2ce638c5a6804d11b5ae401e5ac2aa570e
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Apr 12 19:27:06 2018

[oilpan] Create single entry for write barrier

Similar to ScriptWrappableMarkingVisitor, thread all write barrier calls
through MarkingVisitor::WriteBarrier.

Drive-by:
- Add missing write barrier to CSSRule.

Bug:  chromium:757440 
Change-Id: Ibc9885ac0724ec157df9c7c314be2aa14555691b
Reviewed-on: https://chromium-review.googlesource.com/1010204
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Keishi Hattori <keishi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550304}
[modify] https://crrev.com/4c835f2ce638c5a6804d11b5ae401e5ac2aa570e/third_party/blink/renderer/core/css/css_rule.cc
[modify] https://crrev.com/4c835f2ce638c5a6804d11b5ae401e5ac2aa570e/third_party/blink/renderer/core/dom/node.cc
[modify] https://crrev.com/4c835f2ce638c5a6804d11b5ae401e5ac2aa570e/third_party/blink/renderer/platform/heap/heap.cc
[modify] https://crrev.com/4c835f2ce638c5a6804d11b5ae401e5ac2aa570e/third_party/blink/renderer/platform/heap/heap.h
[modify] https://crrev.com/4c835f2ce638c5a6804d11b5ae401e5ac2aa570e/third_party/blink/renderer/platform/heap/heap_allocator.h
[modify] https://crrev.com/4c835f2ce638c5a6804d11b5ae401e5ac2aa570e/third_party/blink/renderer/platform/heap/incremental_marking_test.cc
[modify] https://crrev.com/4c835f2ce638c5a6804d11b5ae401e5ac2aa570e/third_party/blink/renderer/platform/heap/marking_visitor.h
[modify] https://crrev.com/4c835f2ce638c5a6804d11b5ae401e5ac2aa570e/third_party/blink/renderer/platform/heap/member.h

Blockedon: 832621
Project Member

Comment 100 by bugdroid1@chromium.org, Apr 17 2018

Labels: merge-merged-testbranch
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4c835f2ce638c5a6804d11b5ae401e5ac2aa570e

commit 4c835f2ce638c5a6804d11b5ae401e5ac2aa570e
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Apr 12 19:27:06 2018

[oilpan] Create single entry for write barrier

Similar to ScriptWrappableMarkingVisitor, thread all write barrier calls
through MarkingVisitor::WriteBarrier.

Drive-by:
- Add missing write barrier to CSSRule.

Bug:  chromium:757440 
Change-Id: Ibc9885ac0724ec157df9c7c314be2aa14555691b
Reviewed-on: https://chromium-review.googlesource.com/1010204
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Keishi Hattori <keishi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550304}
[modify] https://crrev.com/4c835f2ce638c5a6804d11b5ae401e5ac2aa570e/third_party/blink/renderer/core/css/css_rule.cc
[modify] https://crrev.com/4c835f2ce638c5a6804d11b5ae401e5ac2aa570e/third_party/blink/renderer/core/dom/node.cc
[modify] https://crrev.com/4c835f2ce638c5a6804d11b5ae401e5ac2aa570e/third_party/blink/renderer/platform/heap/heap.cc
[modify] https://crrev.com/4c835f2ce638c5a6804d11b5ae401e5ac2aa570e/third_party/blink/renderer/platform/heap/heap.h
[modify] https://crrev.com/4c835f2ce638c5a6804d11b5ae401e5ac2aa570e/third_party/blink/renderer/platform/heap/heap_allocator.h
[modify] https://crrev.com/4c835f2ce638c5a6804d11b5ae401e5ac2aa570e/third_party/blink/renderer/platform/heap/incremental_marking_test.cc
[modify] https://crrev.com/4c835f2ce638c5a6804d11b5ae401e5ac2aa570e/third_party/blink/renderer/platform/heap/marking_visitor.h
[modify] https://crrev.com/4c835f2ce638c5a6804d11b5ae401e5ac2aa570e/third_party/blink/renderer/platform/heap/member.h

Project Member

Comment 101 by bugdroid1@chromium.org, Apr 26 2018

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

commit d48e4a5027d99df10556c28382948c31f419e815
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Apr 26 06:59:13 2018

[oilpan] Introduce incremental marking stress flag

This frees up the regular HeapIncrementalMarking flag for implementing an
initial incremental marking strategy.

Bug:  chromium:757440 
Change-Id: Iee924ef718f450b4d1e865ef6880242f501376fb
Reviewed-on: https://chromium-review.googlesource.com/1028273
Reviewed-by: John Budorick <jbudorick@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Keishi Hattori <keishi@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#553935}
[modify] https://crrev.com/d48e4a5027d99df10556c28382948c31f419e815/testing/buildbot/chromium.fyi.json
[modify] https://crrev.com/d48e4a5027d99df10556c28382948c31f419e815/testing/buildbot/test_suite_exceptions.pyl
[modify] https://crrev.com/d48e4a5027d99df10556c28382948c31f419e815/third_party/blink/renderer/platform/heap/thread_state.cc
[modify] https://crrev.com/d48e4a5027d99df10556c28382948c31f419e815/third_party/blink/renderer/platform/heap/thread_state.h
[modify] https://crrev.com/d48e4a5027d99df10556c28382948c31f419e815/third_party/blink/renderer/platform/runtime_enabled_features.json5

Project Member

Comment 102 by bugdroid1@chromium.org, Apr 26 2018

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

commit 6c2e15ce3aaf1b7eeb067fca773632c1a11aeff1
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Apr 26 09:44:23 2018

[oilpan] Fix incremental marking tests

Fix compilaton broken by stricter compile-time checks.

No-try: true
Tbr: haraken@chromium.org
Bug:  chromium:757440 
Change-Id: Ib4444900e0fc68ab915683ec68d598aaf73a27fd
Reviewed-on: https://chromium-review.googlesource.com/1029862
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#553966}
[modify] https://crrev.com/6c2e15ce3aaf1b7eeb067fca773632c1a11aeff1/third_party/blink/renderer/platform/heap/incremental_marking_test.cc

Project Member

Comment 103 by bugdroid1@chromium.org, Apr 26 2018

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

commit 062062c330db34f6d2f53e86242bb2c689712d86
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Apr 26 11:03:28 2018

[oilpan] Adjust layout test expectations for incremental marking

The stressbot now runs with HeapIncrementalMarkingStress

No-try: true
Tbr: haraken@chromium.org
Bug:  chromium:757440 
Change-Id: Ieb520b74417a635ff91ea9db2be7bcc6a875e19b
Reviewed-on: https://chromium-review.googlesource.com/1030090
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#553976}
[rename] https://crrev.com/062062c330db34f6d2f53e86242bb2c689712d86/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=HeapIncrementalMarkingStress

Project Member

Comment 104 by bugdroid1@chromium.org, Apr 26 2018

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

commit 544122c6009ae3e632e9346223716df3e83ee68d
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Apr 26 15:02:17 2018

[oilpan] Fix incremental marking write barrier test

WriteBarrierDuringMixinConstruction assumed a specific layout of the
underlying marking work lists. This is brittle as, depending on other
build flags, containers be resized and rehashed differently, resulting
in different objects on the work lists.

Rework the test to only check a simple condition: whether the object in
question can be found on the |not_fully_constructed_worklist|.

Tbr: haraken@chromium.org
No-try: true
Bug:  chromium:757440 
Change-Id: I1377e2e727ad8844b0aefa88fb0084492f4bb526
Reviewed-on: https://chromium-review.googlesource.com/1030494
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#554030}
[modify] https://crrev.com/544122c6009ae3e632e9346223716df3e83ee68d/third_party/blink/renderer/platform/heap/incremental_marking_test.cc

Blockedon: 837596
Project Member

Comment 106 by bugdroid1@chromium.org, May 2 2018

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

commit d8a31d453aaa429829d6ba183f94b5ba016768bd
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed May 02 17:23:13 2018

[oilpan] Enable incremental marking buildflag

Includes incremental garbage collection infrastructure in regular
builds. Does not enable incremental marking at runtime!

This CL may cause throughput regressions and is an attempt
to collect a broad range of potential performance issues.

Bug:  chromium:757440 
Change-Id: Ie7b75f8d96f9230400beed1a3258e45e0ca742ed
Reviewed-on: https://chromium-review.googlesource.com/980753
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#555449}
[modify] https://crrev.com/d8a31d453aaa429829d6ba183f94b5ba016768bd/third_party/blink/renderer/platform/heap/BUILD.gn

Project Member

Comment 107 by bugdroid1@chromium.org, May 2 2018

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

commit b1940e0ce70651ca8cb36787ed0a96ace34eace3
Author: Ned Nguyen <nednguyen@google.com>
Date: Wed May 02 20:49:12 2018

Revert "[oilpan] Enable incremental marking buildflag"

This reverts commit d8a31d453aaa429829d6ba183f94b5ba016768bd.

Reason for revert: suspect breaking blink_heap_unittests

BUG: chromium:839114 

Original change's description:
> [oilpan] Enable incremental marking buildflag
> 
> Includes incremental garbage collection infrastructure in regular
> builds. Does not enable incremental marking at runtime!
> 
> This CL may cause throughput regressions and is an attempt
> to collect a broad range of potential performance issues.
> 
> Bug:  chromium:757440 
> Change-Id: Ie7b75f8d96f9230400beed1a3258e45e0ca742ed
> Reviewed-on: https://chromium-review.googlesource.com/980753
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Reviewed-by: Kentaro Hara <haraken@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#555449}

TBR=haraken@chromium.org,keishi@chromium.org,hpayer@chromium.org,mlippautz@chromium.org

Change-Id: I1d1cd812dcf24a9a87ad6100658e4c18979f29bd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  chromium:757440 
Reviewed-on: https://chromium-review.googlesource.com/1040688
Reviewed-by: Ned Nguyen <nednguyen@google.com>
Commit-Queue: Ned Nguyen <nednguyen@google.com>
Cr-Commit-Position: refs/heads/master@{#555504}
[modify] https://crrev.com/b1940e0ce70651ca8cb36787ed0a96ace34eace3/third_party/blink/renderer/platform/heap/BUILD.gn

Project Member

Comment 108 by bugdroid1@chromium.org, May 2 2018

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

commit d1a23ee75d8ef824d53df708ea09017ebafa00e4
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed May 02 21:11:20 2018

[oilpan] Fix estimated marking time computation

Compute estimated marking time in PostSweep were both, marked bytes
and marking time, refer to the same garbage collection cycle.

Bug:  chromium:830196 ,  chromium:757440 
Change-Id: I80ea0c028ba7668f05b94b1acbe9b0c38afa801a
Reviewed-on: https://chromium-review.googlesource.com/1039566
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#555531}
[modify] https://crrev.com/d1a23ee75d8ef824d53df708ea09017ebafa00e4/third_party/blink/renderer/platform/heap/thread_state.cc
[modify] https://crrev.com/d1a23ee75d8ef824d53df708ea09017ebafa00e4/third_party/blink/renderer/platform/heap/thread_state.h

Blockedon: 839114
Project Member

Comment 110 by bugdroid1@chromium.org, May 3 2018

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

commit 6524551518762533169e817cf3efe47eb4cbbd1a
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu May 03 09:51:34 2018

[oilpan] Fix CFI in incremental marking tests

Bug:  chromium:839114 ,  chromium:757440 
Change-Id: I9784179f8af19739a8c4398e3deea04611e12b09
Reviewed-on: https://chromium-review.googlesource.com/1041825
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#555684}
[modify] https://crrev.com/6524551518762533169e817cf3efe47eb4cbbd1a/third_party/blink/renderer/platform/heap/incremental_marking_test.cc

Project Member

Comment 111 by bugdroid1@chromium.org, May 3 2018

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

commit bd9ac13acc9d99a4f192b2734613545c187a319c
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu May 03 12:12:31 2018

[oilpan] Enable incremental marking buildflag

Includes incremental garbage collection infrastructure in regular
builds. Does not enable incremental marking at runtime!

This CL may cause throughput regressions and is an attempt
to collect a broad range of potential performance issues.

Bug:  chromium:757440 
Change-Id: If4d91be2eb325417736a38e27c481ab23ce7a0e9
Reviewed-on: https://chromium-review.googlesource.com/1041986
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#555698}
[modify] https://crrev.com/bd9ac13acc9d99a4f192b2734613545c187a319c/third_party/blink/renderer/platform/heap/BUILD.gn

Blockedon: 839514
Project Member

Comment 113 by bugdroid1@chromium.org, May 7 2018

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

commit faf462c0c6690b6433f20b0b7f28090d5277f0c5
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Mon May 07 15:05:11 2018

[oilpan] Move address cache to roots marking

Address cache is only actively used during roots marking. For
incremental marking we pass over roots multiple times, each time
potentially requires clearing the cache.

Drive-by:
- Add unit tests
- Rename to AddressCache
- Encapsulate handling fully in AddressCache
- Remove outdated caller

Bug:  chromium:757440 ,  chromium:830196 
Change-Id: I51780e0bbbb8566ad0c83df98229e15133b42825
Reviewed-on: https://chromium-review.googlesource.com/1044214
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Keishi Hattori <keishi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#556439}
[modify] https://crrev.com/faf462c0c6690b6433f20b0b7f28090d5277f0c5/third_party/blink/renderer/platform/heap/BUILD.gn
[add] https://crrev.com/faf462c0c6690b6433f20b0b7f28090d5277f0c5/third_party/blink/renderer/platform/heap/address_cache.cc
[add] https://crrev.com/faf462c0c6690b6433f20b0b7f28090d5277f0c5/third_party/blink/renderer/platform/heap/address_cache.h
[add] https://crrev.com/faf462c0c6690b6433f20b0b7f28090d5277f0c5/third_party/blink/renderer/platform/heap/address_cache_test.cc
[modify] https://crrev.com/faf462c0c6690b6433f20b0b7f28090d5277f0c5/third_party/blink/renderer/platform/heap/heap.cc
[modify] https://crrev.com/faf462c0c6690b6433f20b0b7f28090d5277f0c5/third_party/blink/renderer/platform/heap/heap.h
[modify] https://crrev.com/faf462c0c6690b6433f20b0b7f28090d5277f0c5/third_party/blink/renderer/platform/heap/heap_page.cc
[modify] https://crrev.com/faf462c0c6690b6433f20b0b7f28090d5277f0c5/third_party/blink/renderer/platform/heap/heap_page.h
[modify] https://crrev.com/faf462c0c6690b6433f20b0b7f28090d5277f0c5/third_party/blink/renderer/platform/heap/heap_test.cc
[modify] https://crrev.com/faf462c0c6690b6433f20b0b7f28090d5277f0c5/third_party/blink/renderer/platform/heap/page_memory.h
[modify] https://crrev.com/faf462c0c6690b6433f20b0b7f28090d5277f0c5/third_party/blink/renderer/platform/heap/thread_state.cc

Project Member

Comment 114 by bugdroid1@chromium.org, May 7 2018

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

commit e2cf7974aa9444877e0c9f71cff2b946310b83a7
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Mon May 07 15:35:56 2018

Revert "[oilpan] Enable incremental marking buildflag"

This reverts commit bd9ac13acc9d99a4f192b2734613545c187a319c.

Reason for revert: Unfortunately there's another V8 CL close which massively affects speedometer. We need to reland to get a clear picture.

Original change's description:
> [oilpan] Enable incremental marking buildflag
> 
> Includes incremental garbage collection infrastructure in regular
> builds. Does not enable incremental marking at runtime!
> 
> This CL may cause throughput regressions and is an attempt
> to collect a broad range of potential performance issues.
> 
> Bug:  chromium:757440 
> Change-Id: If4d91be2eb325417736a38e27c481ab23ce7a0e9
> Reviewed-on: https://chromium-review.googlesource.com/1041986
> Reviewed-by: Kentaro Hara <haraken@chromium.org>
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#555698}

TBR=haraken@chromium.org,keishi@chromium.org,hpayer@chromium.org,mlippautz@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug:  chromium:757440 
Change-Id: I87dd96d9b9cd142503ff22534b8207da27b8c352
Reviewed-on: https://chromium-review.googlesource.com/1047265
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#556450}
[modify] https://crrev.com/e2cf7974aa9444877e0c9f71cff2b946310b83a7/third_party/blink/renderer/platform/heap/BUILD.gn

Project Member

Comment 115 by bugdroid1@chromium.org, May 10 2018

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

commit 838fb3bd2db6a2869a0efc6e7e3154f954f74b70
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu May 10 17:51:18 2018

[oilpan] Enable incremental marking buildflag

Includes incremental garbage collection infrastructure in regular
builds. Does not enable incremental marking at runtime!

Sheriffs:
- This CL may cause throughput regressions and is an attempt
  to collect a broad range of potential performance issues.
- Binary size regressions of up to 100kb are expected. The infra
  added here is the minimal base for any future incremental and
  concurrent marking changes. Long term we will save a bit of
  memory by removing trace methods.

Bug:  chromium:757440 
Change-Id: I61f4dca6cb1933a9f10416bc6641aae3e8794455
Reviewed-on: https://chromium-review.googlesource.com/1052108
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#557576}
[modify] https://crrev.com/838fb3bd2db6a2869a0efc6e7e3154f954f74b70/third_party/blink/renderer/platform/heap/BUILD.gn

Blockedon: 841324
Blockedon: 841248
Blockedon: 840779
Project Member

Comment 119 by bugdroid1@chromium.org, May 14 2018

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

commit cc7faaf76c126b4a2900d7b56bda3d06d5cc50ed
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Mon May 14 13:56:28 2018

[oilpan] Cleanup incremental marking tests

Remove template parameter for observed objects, making it impossible to
cast an marking worklist item to that type. This was a source of UBSAN
errors in the tests.

Bug:  chromium:757440 
Change-Id: I35843b1bcfd81c404e840790bb00a7911e2bc3aa
Reviewed-on: https://chromium-review.googlesource.com/1057234
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558289}
[modify] https://crrev.com/cc7faaf76c126b4a2900d7b56bda3d06d5cc50ed/third_party/blink/renderer/platform/heap/incremental_marking_test.cc

Project Member

Comment 120 by bugdroid1@chromium.org, May 14 2018

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

commit c6ff060cc760c7cb8a44be7314ce5e96757213c6
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Mon May 14 23:23:14 2018

[oilpan] Cleanup tracing scopes

- Use ThreadHeapStatsCollector scopes instead of manual scopes
- Allow adding parameters
- Allow enabling by default
- Fix telemetry unit tests

Bug: chromium:840789,  chromium:757440 
Change-Id: If291b08d989d11233a31a4fbfc28db0b2f594e2b
Reviewed-on: https://chromium-review.googlesource.com/1057626
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558522}
[modify] https://crrev.com/c6ff060cc760c7cb8a44be7314ce5e96757213c6/third_party/blink/renderer/platform/heap/heap_page.cc
[modify] https://crrev.com/c6ff060cc760c7cb8a44be7314ce5e96757213c6/third_party/blink/renderer/platform/heap/heap_stats_collector.cc
[modify] https://crrev.com/c6ff060cc760c7cb8a44be7314ce5e96757213c6/third_party/blink/renderer/platform/heap/heap_stats_collector.h
[modify] https://crrev.com/c6ff060cc760c7cb8a44be7314ce5e96757213c6/third_party/blink/renderer/platform/heap/heap_stats_collector_test.cc
[modify] https://crrev.com/c6ff060cc760c7cb8a44be7314ce5e96757213c6/third_party/blink/renderer/platform/heap/thread_state.cc
[modify] https://crrev.com/c6ff060cc760c7cb8a44be7314ce5e96757213c6/tools/perf/contrib/oilpan/oilpan_gc_times.py
[modify] https://crrev.com/c6ff060cc760c7cb8a44be7314ce5e96757213c6/tools/perf/contrib/oilpan/oilpan_gc_times_unittest.py

Blockedon: 843025
Project Member

Comment 122 by bugdroid1@chromium.org, May 15 2018

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

commit 984762d2100f6aff3dacb8507595b813e68e96a5
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue May 15 15:33:20 2018

[oilpan,wtf] Rework HashTable write barriers

Instead of emitting write barriers for single writes in HashTable,
conservatively emit a barrier for the backing store during rehashing.

This moves us in the tradeoff space:
- Removes 40KiB of binary bloat
- Avoids emitting barriers when re-inserting single elements which
  improves throughput for the case where incremental marking is off
- Emits a single conservative barrier at the end of RehashTo. This
  potentially means that we (re-)scan more objects when incremental
  marking is on

Bug:  chromium:839514 ,  chromium:757440 
Change-Id: Ib5495c9e2210836424d7b26f2138d852f8dafec7
Reviewed-on: https://chromium-review.googlesource.com/1055400
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558713}
[modify] https://crrev.com/984762d2100f6aff3dacb8507595b813e68e96a5/third_party/blink/renderer/platform/heap/heap_allocator.h
[modify] https://crrev.com/984762d2100f6aff3dacb8507595b813e68e96a5/third_party/blink/renderer/platform/heap/marking_visitor.h
[modify] https://crrev.com/984762d2100f6aff3dacb8507595b813e68e96a5/third_party/blink/renderer/platform/wtf/allocator/partition_allocator.h
[modify] https://crrev.com/984762d2100f6aff3dacb8507595b813e68e96a5/third_party/blink/renderer/platform/wtf/hash_table.h

Blocking: 843903
📍 Job complete. See results below.
https://pinpoint-dot-chromeperf.appspot.com/job/15c2fb6c240000
Blocking: 837864
Blockedon: 844549
Project Member

Comment 128 by bugdroid1@chromium.org, May 24 2018

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

commit 4024aad376eea8ef01d693a89dab09585b2a4f9e
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu May 24 08:33:41 2018

[oilpan] Split write barrier in fast and slow parts

Split write barrier into fast and slow parts:
- The fast part only checks whether any Oilpan heap is currently marking. This
  check is only approximate as it does not consider the current ThreadState. In
  general, we expect this check to be enough to allow bailing out of the barrier.
- The slow version checks whether the current ThreadState is marking and whether
  the values actually require a write barrier.

This way we emit only a short instruction sequence for the fast cases and avoid
poluting the regular instruction sequences.

Verified locally on the microbenchmark blink_perf.parser query-selector-deep
which showed a 42% regression. Scores (higher is better):
- ToT: 8932
- Without barrier: 15188
- With this CL: 13352

Bug:  chromium:844576 ,  chromium:757440 
Change-Id: Ie8ebbf95fef0ff59ad8f1a111dd5daecfabc4109
Reviewed-on: https://chromium-review.googlesource.com/1071272
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Keishi Hattori <keishi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#561424}
[modify] https://crrev.com/4024aad376eea8ef01d693a89dab09585b2a4f9e/third_party/blink/renderer/platform/heap/marking_visitor.cc
[modify] https://crrev.com/4024aad376eea8ef01d693a89dab09585b2a4f9e/third_party/blink/renderer/platform/heap/marking_visitor.h
[modify] https://crrev.com/4024aad376eea8ef01d693a89dab09585b2a4f9e/third_party/blink/renderer/platform/heap/member.h
[modify] https://crrev.com/4024aad376eea8ef01d693a89dab09585b2a4f9e/third_party/blink/renderer/platform/heap/thread_state.h

Blockedon: 844576
Project Member

Comment 130 by bugdroid1@chromium.org, May 28 2018

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

commit 943547ec9faefe687f67244d36ae1b59e0e79697
Author: Keishi Hattori <keishi@chromium.org>
Date: Mon May 28 07:09:27 2018

Oilpan: Implement IncrementalIdleGC scheduler behind HeapIncrementalMarking flag

Schedules an IncrementalIdleGC instead of an IdleGC when the HeapIncrementalMarking runtime flag is enabled.

Added GCReason kIncrementalIdleGC so we can distinguish them in UMA.

IncrementalMarking tasks will be posted and executed as normal tasks, but if the reason is kTesting (in stress mode or unit test), they will be executed from RunScheduledGC as before.

ThreadState::RunIncrementalMarking*Task() has been added to support tasks canceled after posting.

Bug:  757440 
Change-Id: Id305620facb0e7aa26561e9b6ebd3ef4db8b8f34
Reviewed-on: https://chromium-review.googlesource.com/1065719
Reviewed-by: Alexander Timin <altimin@chromium.org>
Reviewed-by: Brian White <bcwhite@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Hajime Hoshi <hajimehoshi@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Keishi Hattori <keishi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#562198}
[modify] https://crrev.com/943547ec9faefe687f67244d36ae1b59e0e79697/third_party/blink/renderer/platform/heap/blink_gc.h
[modify] https://crrev.com/943547ec9faefe687f67244d36ae1b59e0e79697/third_party/blink/renderer/platform/heap/incremental_marking_test.cc
[modify] https://crrev.com/943547ec9faefe687f67244d36ae1b59e0e79697/third_party/blink/renderer/platform/heap/thread_state.cc
[modify] https://crrev.com/943547ec9faefe687f67244d36ae1b59e0e79697/third_party/blink/renderer/platform/heap/thread_state.h
[modify] https://crrev.com/943547ec9faefe687f67244d36ae1b59e0e79697/tools/metrics/histograms/enums.xml
[modify] https://crrev.com/943547ec9faefe687f67244d36ae1b59e0e79697/tools/metrics/histograms/histograms.xml

Blockedon: -841324
Blockedon: 844559
Blockedon: -837596
Blockedon: -831541
Blockedon: 847735
Project Member

Comment 136 by bugdroid1@chromium.org, May 30 2018

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

commit ebbc5a8d60fa8e1d9cbe9e4176c9206e03b26eb3
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed May 30 10:41:42 2018

Add chrome://flags entry for Blink incremental marking

- Adds chrome://flags entry
- Adds a FeatureFlag
- Make existing Blink flag dependent on the Chrome flag

Bug:  chromium:757440 , chromium:847735
Change-Id: Iccb63fc31b330a6bb69e95d5c0d7599cce10e2ee
Reviewed-on: https://chromium-review.googlesource.com/1077870
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Keishi Hattori <keishi@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#562792}
[modify] https://crrev.com/ebbc5a8d60fa8e1d9cbe9e4176c9206e03b26eb3/chrome/browser/about_flags.cc
[modify] https://crrev.com/ebbc5a8d60fa8e1d9cbe9e4176c9206e03b26eb3/chrome/browser/flag_descriptions.cc
[modify] https://crrev.com/ebbc5a8d60fa8e1d9cbe9e4176c9206e03b26eb3/chrome/browser/flag_descriptions.h
[modify] https://crrev.com/ebbc5a8d60fa8e1d9cbe9e4176c9206e03b26eb3/content/child/runtime_features.cc
[modify] https://crrev.com/ebbc5a8d60fa8e1d9cbe9e4176c9206e03b26eb3/content/public/common/content_features.cc
[modify] https://crrev.com/ebbc5a8d60fa8e1d9cbe9e4176c9206e03b26eb3/content/public/common/content_features.h
[modify] https://crrev.com/ebbc5a8d60fa8e1d9cbe9e4176c9206e03b26eb3/third_party/blink/public/platform/web_runtime_features.h
[modify] https://crrev.com/ebbc5a8d60fa8e1d9cbe9e4176c9206e03b26eb3/third_party/blink/renderer/platform/exported/web_runtime_features.cc
[modify] https://crrev.com/ebbc5a8d60fa8e1d9cbe9e4176c9206e03b26eb3/tools/metrics/histograms/enums.xml

Project Member

Comment 137 by bugdroid1@chromium.org, May 31 2018

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

commit 50ff9ebe68493b7cdb512bb688b1db9f6e69e27b
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu May 31 00:09:10 2018

[oilpan] Factor out common parts of the atomic phase

In a follow up, we will make CollectGarbage the bottleneck for the GC
atomic phase.

Bug:  chromium:757440 
Change-Id: Icf27cfde4a61375eda52207e967c84c4ed9c7c31
Reviewed-on: https://chromium-review.googlesource.com/1078214
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#563077}
[modify] https://crrev.com/50ff9ebe68493b7cdb512bb688b1db9f6e69e27b/third_party/blink/renderer/platform/heap/heap_stats_collector.h
[modify] https://crrev.com/50ff9ebe68493b7cdb512bb688b1db9f6e69e27b/third_party/blink/renderer/platform/heap/thread_state.cc
[modify] https://crrev.com/50ff9ebe68493b7cdb512bb688b1db9f6e69e27b/third_party/blink/renderer/platform/heap/thread_state.h

📍 Job complete. See results below.
https://pinpoint-dot-chromeperf.appspot.com/job/14dd8136240000
😿 Pinpoint job stopped with an error.
https://pinpoint-dot-chromeperf.appspot.com/job/11f5f156240000

Buildbucket says the build completed successfully, but Pinpoint can't find the isolate hash.
😿 Pinpoint job stopped with an error.
https://pinpoint-dot-chromeperf.appspot.com/job/14b7c57a240000

Buildbucket says the build completed successfully, but Pinpoint can't find the isolate hash.
😿 Pinpoint job stopped with an error.
https://pinpoint-dot-chromeperf.appspot.com/job/12dd8136240000

Buildbucket says the build completed successfully, but Pinpoint can't find the isolate hash.
😿 Pinpoint job stopped with an error.
https://pinpoint-dot-chromeperf.appspot.com/job/14a6c7a6240000

Buildbucket says the build completed successfully, but Pinpoint can't find the isolate hash.
Project Member

Comment 149 by bugdroid1@chromium.org, May 31 2018

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

commit 32787e23a00ccb7f62a9162b87afbaead91521de
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu May 31 13:30:02 2018

[oilpan] Call into CollectGarbage from incremental finalization

This avoids having multiple code paths that can finalize garbage
collection by calling the regular bottleneck from the incremental
finalization.

The only adjustment needed is for MarkPhasePrologue which in this case
already executed a minimal version upon starting incremental marking.

Bug:  chromium:757440 ,  chromium:830196 
Change-Id: I9380a8c867e4b32aaf3c73eecae8391eda8e2853
Reviewed-on: https://chromium-review.googlesource.com/1080347
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Keishi Hattori <keishi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#563209}
[modify] https://crrev.com/32787e23a00ccb7f62a9162b87afbaead91521de/third_party/blink/renderer/platform/heap/heap_test.cc
[modify] https://crrev.com/32787e23a00ccb7f62a9162b87afbaead91521de/third_party/blink/renderer/platform/heap/thread_state.cc
[modify] https://crrev.com/32787e23a00ccb7f62a9162b87afbaead91521de/third_party/blink/renderer/platform/heap/thread_state.h

Project Member

Comment 150 by bugdroid1@chromium.org, Jun 5 2018

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

commit fdd98637aba24a7fcaabea785e85252419e4d7a3
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue Jun 05 02:40:05 2018

[oilpan] Update collection rate histograms for all GC reasons

Bug: chromium:840789,  chromium:757440 
Change-Id: I9841524427dcb072ece75888f928b3e09bbf368c
Reviewed-on: https://chromium-review.googlesource.com/1086430
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#564353}
[modify] https://crrev.com/fdd98637aba24a7fcaabea785e85252419e4d7a3/third_party/blink/renderer/platform/heap/thread_state.cc

Project Member

Comment 151 by bugdroid1@chromium.org, Jun 5 2018

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

commit 3860f3e4d199e934052b3486a226dde44fb22e9a
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue Jun 05 05:11:12 2018

[oilpan] Use atomic phase marking time for BlinkGC.CollectGarbage

The histogram will be deprecated soon. Up until then it should use the
atomic phase marking time though and not the sum of all marking time.

No-try: true
Bug: chromium:840789,  chromium:757440 
Change-Id: Ic425ba4538ec7d32b4055f9f5c905d387711a637
Reviewed-on: https://chromium-review.googlesource.com/1086559
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Keishi Hattori <keishi@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#564362}
[modify] https://crrev.com/3860f3e4d199e934052b3486a226dde44fb22e9a/third_party/blink/renderer/platform/heap/thread_state.cc

Project Member

Comment 153 by bugdroid1@chromium.org, Jun 5 2018

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

commit 09f81d9f83fc84bf05fabc870a57d3451dc88590
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue Jun 05 08:45:00 2018

[oilpan] Add new BlinkGC UMA counters

Histgram CL: https://chromium-review.googlesource.com/c/chromium/src/+/1086432

Bug: chromium:840789,  chromium:757440 
Change-Id: Ie2b3510ac774ba8ac66ee9f11dc8aa8dd22ac677
Reviewed-on: https://chromium-review.googlesource.com/1086809
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#564411}
[modify] https://crrev.com/09f81d9f83fc84bf05fabc870a57d3451dc88590/third_party/blink/renderer/platform/heap/thread_state.cc

Blockedon: 849627
Blockedon: 847446
Blockedon: 849181
Blockedon: 847407
Project Member

Comment 158 by bugdroid1@chromium.org, Jun 7 2018

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

commit 2a198bd391edea387150f5040c4bdf78e683faa6
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Jun 07 00:36:04 2018

histograms: Update BlinkGC histograms

- Fix labels of GCReason suffixes
- Deprecate BlinkGC.CollectGarbage in favor of more exact buckets. See
  histograms.xml
- Introduce BlinkGC.AtomicPhaseMarking for the atomic marking phase
- Apply suffixes to interesting buckets to get exact pause times per
  GC reason

No-try: true
Bug: chromium:840789,  chromium:757440 , chromium:847735
Change-Id: I611fea498c925c70286e44d10a885aa769552bcb
Reviewed-on: https://chromium-review.googlesource.com/1086432
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Mark Pearson <mpearson@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565123}
[modify] https://crrev.com/2a198bd391edea387150f5040c4bdf78e683faa6/tools/metrics/histograms/histograms.xml

Project Member

Comment 159 by bugdroid1@chromium.org, Jun 13 2018

Blockedon: -832621
Blockedon: 853106
Blockedon: -847446
Blockedon: -847407
Blockedon: -844559
Blockedon: -844549
Blockedon: -841248
Project Member

Comment 167 by bugdroid1@chromium.org, Jul 3

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

commit 96eb702eb19acebd1f792436749e3021e0b8f54c
Author: Keishi Hattori <keishi@chromium.org>
Date: Tue Jul 03 14:45:47 2018

Oilpan: Update incremental marking step duration dynamically

Calls UpdateIncrementalMarkingStepDuration() every time we allocate a new page.
UpdateIncrementalMarkingStepDuration() will check if the estimated time left is increasing (i.e. marking speed is not keeping up with allocations).
If so it will double the step size.

Also increases default duration from 1ms to 2ms.

Bug:  757440 
Change-Id: Icf262a4b851fd730698e6b09384c5c181c671de2
Reviewed-on: https://chromium-review.googlesource.com/1105695
Commit-Queue: Keishi Hattori <keishi@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572208}
[modify] https://crrev.com/96eb702eb19acebd1f792436749e3021e0b8f54c/third_party/blink/renderer/platform/heap/heap_stats_collector.h
[modify] https://crrev.com/96eb702eb19acebd1f792436749e3021e0b8f54c/third_party/blink/renderer/platform/heap/thread_state.cc
[modify] https://crrev.com/96eb702eb19acebd1f792436749e3021e0b8f54c/third_party/blink/renderer/platform/heap/thread_state.h

Project Member

Comment 168 by bugdroid1@chromium.org, Jul 4

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

commit 4e34ccd5643183a799de377d9eaba175835ea659
Author: Keishi Hattori <keishi@chromium.org>
Date: Wed Jul 04 02:30:10 2018

Oilpan: Add reason arg to IncrementalMarkingStart trace event

Add reason arg to IncrementalMarkingStart trace event so we can see what trigger the incremental marking GC.

Bug:  757440 
Change-Id: Ibecb88c157dec70e44287a146f93cdf7e5ef6211
Reviewed-on: https://chromium-review.googlesource.com/1124342
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Keishi Hattori <keishi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572452}
[modify] https://crrev.com/4e34ccd5643183a799de377d9eaba175835ea659/third_party/blink/renderer/platform/heap/thread_state.cc

Project Member

Comment 169 by bugdroid1@chromium.org, Jul 4

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

commit c225e90eeb77271d63d7e6299c1ff9948839891f
Author: Keishi Hattori <keishi@chromium.org>
Date: Wed Jul 04 13:29:48 2018

Oilpan: Enable IncrementalV8FollowupGC behind the HeapIncrementalMarking flag

Schedules an kIncrementalV8FollowupGC instead of an PreciseGC when the HeapIncrementalMarking runtime flag is enabled.

Bug:  757440 
Change-Id: I1d05afcc69508592d1e5f411dea1a3afa950baca
Reviewed-on: https://chromium-review.googlesource.com/1095200
Commit-Queue: Keishi Hattori <keishi@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572549}
[modify] https://crrev.com/c225e90eeb77271d63d7e6299c1ff9948839891f/third_party/blink/renderer/platform/heap/thread_state.cc

Project Member

Comment 170 by bugdroid1@chromium.org, Aug 1

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

commit d92ab8be365f7c52d1ead03f2d2f3a75510957f3
Author: Keishi Hattori <keishi@chromium.org>
Date: Wed Aug 01 10:08:20 2018

Oilpan: Enable incremental marking by default

PSA: https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/9YCeDToqDU8

Bug:  757440 
Change-Id: Id13ec3a8aa0c6a134a83acffd9811e2eee99fd2b
Reviewed-on: https://chromium-review.googlesource.com/1125892
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Keishi Hattori <keishi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#579746}
[modify] https://crrev.com/d92ab8be365f7c52d1ead03f2d2f3a75510957f3/third_party/blink/renderer/platform/runtime_enabled_features.json5

Blockedon: 870471
Blockedon: 870196
Blockedon: 871002
Blockedon: 871105
Project Member

Comment 175 by bugdroid1@chromium.org, Aug 6

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

commit 632f6b70acb4754d8fd6fc674b15cad43cf43078
Author: Keishi Hattori <keishi@chromium.org>
Date: Mon Aug 06 12:06:13 2018

Revert "Oilpan: Enable incremental marking by default"

This reverts commit d92ab8be365f7c52d1ead03f2d2f3a75510957f3.

Reason for revert: causing chromium.linux bots to fail

Original change's description:
> Oilpan: Enable incremental marking by default
> 
> PSA: https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/9YCeDToqDU8
> 
> Bug:  757440 
> Change-Id: Id13ec3a8aa0c6a134a83acffd9811e2eee99fd2b
> Reviewed-on: https://chromium-review.googlesource.com/1125892
> Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
> Reviewed-by: Kentaro Hara <haraken@chromium.org>
> Commit-Queue: Keishi Hattori <keishi@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#579746}

TBR=haraken@chromium.org,keishi@chromium.org,mlippautz@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug:  757440 
Change-Id: I997d18b640ce20d9db5ba7ca8ce5928f4dfe71c4
Reviewed-on: https://chromium-review.googlesource.com/1163421
Reviewed-by: Keishi Hattori <keishi@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Keishi Hattori <keishi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#580849}
[modify] https://crrev.com/632f6b70acb4754d8fd6fc674b15cad43cf43078/third_party/blink/renderer/platform/runtime_enabled_features.json5

Project Member

Comment 176 by bugdroid1@chromium.org, Aug 7

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

commit 1638e067d7dccd748c024dcdf763a63a943c9656
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue Aug 07 15:58:10 2018

[heap] Do not revive WeakMember during incremental marking

Overwriting deleted values with cleared values potentially revives
buckets in collections. For atomic garbage collections this is not a
problem as those values are filered out in the visitors already. For
incremental garbage collections the deleted values may be introduced by
erasing a value from a container after it has been visited by the
incremental marker.

Bug:  chromium:870196 ,  chromium:757440 
Change-Id: I1d628f00c2e2ea6e36e880d50a397dcbcc8566d1
Reviewed-on: https://chromium-review.googlesource.com/1164950
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Keishi Hattori <keishi@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#581238}
[modify] https://crrev.com/1638e067d7dccd748c024dcdf763a63a943c9656/third_party/blink/renderer/platform/heap/heap.h
[modify] https://crrev.com/1638e067d7dccd748c024dcdf763a63a943c9656/third_party/blink/renderer/platform/heap/incremental_marking_test.cc

Project Member

Comment 177 by bugdroid1@chromium.org, Aug 7

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

commit 460c4724a3221dfb0b438fa619b41ec4022d2d38
Author: Fredrik Hubinette <hubbe@chromium.org>
Date: Tue Aug 07 18:04:18 2018

Revert "[heap] Do not revive WeakMember during incremental marking"

This reverts commit 1638e067d7dccd748c024dcdf763a63a943c9656.

Reason for revert: New tests are flaky and causing problems when submitting code.

Original change's description:
> [heap] Do not revive WeakMember during incremental marking
> 
> Overwriting deleted values with cleared values potentially revives
> buckets in collections. For atomic garbage collections this is not a
> problem as those values are filered out in the visitors already. For
> incremental garbage collections the deleted values may be introduced by
> erasing a value from a container after it has been visited by the
> incremental marker.
> 
> Bug:  chromium:870196 ,  chromium:757440 
> Change-Id: I1d628f00c2e2ea6e36e880d50a397dcbcc8566d1
> Reviewed-on: https://chromium-review.googlesource.com/1164950
> Reviewed-by: Kentaro Hara <haraken@chromium.org>
> Reviewed-by: Keishi Hattori <keishi@chromium.org>
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#581238}

TBR=haraken@chromium.org,keishi@chromium.org,mlippautz@chromium.org

Change-Id: I632b5594d137acd37b4639ebcd46f8d61638dbc0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  chromium:870196 ,  chromium:757440 
Reviewed-on: https://chromium-review.googlesource.com/1165328
Reviewed-by: Fredrik Hubinette <hubbe@chromium.org>
Commit-Queue: Fredrik Hubinette <hubbe@chromium.org>
Cr-Commit-Position: refs/heads/master@{#581277}
[modify] https://crrev.com/460c4724a3221dfb0b438fa619b41ec4022d2d38/third_party/blink/renderer/platform/heap/heap.h
[modify] https://crrev.com/460c4724a3221dfb0b438fa619b41ec4022d2d38/third_party/blink/renderer/platform/heap/incremental_marking_test.cc

Project Member

Comment 178 by bugdroid1@chromium.org, Aug 8

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

commit 3972c07ca0793f1f0a8d84ed79b43bd1faf42ea1
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed Aug 08 07:33:18 2018

Reland "[heap] Do not revive WeakMember during incremental marking"

Overwriting deleted values with cleared values potentially revives
buckets in collections. For atomic garbage collections this is not a
problem as those values are filered out in the visitors already. For
incremental garbage collections the deleted values may be introduced by
erasing a value from a container after it has been visited by the
incremental marker.

This reverts commit 460c4724a3221dfb0b438fa619b41ec4022d2d38.

Bug:  chromium:870196 ,  chromium:757440 
Change-Id: I2d4c173a2dc94b3b8615699f81b85e1b61c4c705
Reviewed-on: https://chromium-review.googlesource.com/1165556
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#581494}
[modify] https://crrev.com/3972c07ca0793f1f0a8d84ed79b43bd1faf42ea1/third_party/blink/renderer/platform/heap/heap.h
[modify] https://crrev.com/3972c07ca0793f1f0a8d84ed79b43bd1faf42ea1/third_party/blink/renderer/platform/heap/incremental_marking_test.cc

Blockedon: 872130
Project Member

Comment 180 by bugdroid1@chromium.org, Aug 9

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

commit f3e02276ecbbaf87c8c5143a6361582faff3ca33
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Aug 09 11:30:03 2018

[heap] Incremental marking: Do not promptly free HashTable backings

Previously we checked whether a backing could be freed during
incremental marking using the provided Traits and kWeakHandlingFlag. It
turns out that WeakMember may also be part of otherwise strongly treated
in-place constructed objects, e.g., std::pair<WeakMember<T>,U>.

Completely turn off promptly freeing for HashTable backings during
incremental marking.

Bug:  chromium:870306 ,  chromium:757440 
Change-Id: I94aacad0dbba707a4e0fb8c8119591fd413f9314
Reviewed-on: https://chromium-review.googlesource.com/1165353
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Keishi Hattori <keishi@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#581865}
[modify] https://crrev.com/f3e02276ecbbaf87c8c5143a6361582faff3ca33/third_party/blink/renderer/platform/heap/heap_allocator.cc
[modify] https://crrev.com/f3e02276ecbbaf87c8c5143a6361582faff3ca33/third_party/blink/renderer/platform/heap/heap_allocator.h
[modify] https://crrev.com/f3e02276ecbbaf87c8c5143a6361582faff3ca33/third_party/blink/renderer/platform/heap/incremental_marking_test.cc
[modify] https://crrev.com/f3e02276ecbbaf87c8c5143a6361582faff3ca33/third_party/blink/renderer/platform/wtf/allocator/partition_allocator.cc
[modify] https://crrev.com/f3e02276ecbbaf87c8c5143a6361582faff3ca33/third_party/blink/renderer/platform/wtf/allocator/partition_allocator.h
[modify] https://crrev.com/f3e02276ecbbaf87c8c5143a6361582faff3ca33/third_party/blink/renderer/platform/wtf/hash_table.h

Project Member

Comment 181 by bugdroid1@chromium.org, Aug 10

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

commit f789a9453217467376d32c4d20b67501e48f3129
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Fri Aug 10 11:29:10 2018

Oilpan: Enable incremental marking per default

PSA: https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/9YCeDToqDU8

Bug:  chromium:757440 
Change-Id: Ie53f3a5f68ace78bc47828cfb441d5d0a53fd9aa
Reviewed-on: https://chromium-review.googlesource.com/1170692
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Keishi Hattori <keishi@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582117}
[modify] https://crrev.com/f789a9453217467376d32c4d20b67501e48f3129/third_party/blink/renderer/platform/runtime_enabled_features.json5

Project Member

Comment 182 by bugdroid1@chromium.org, Oct 18

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

commit cdf14f5ad9f7f77d94b841416590a8e2d50c2f80
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Oct 18 08:10:38 2018

[heap] Remove Blink incremental marking flag from chrome://flags

There should be no reason to override this from the UI anymore.

Also fix flag toggle. The toggle was only working from 'default false'
-> 'enabled' but could not be used to explicitly disable the feature.

Tbr: jochen@chromium.org
Bug:  757440 
Change-Id: I732c508503692437f9780d745f43d9bc4f09a611
Reviewed-on: https://chromium-review.googlesource.com/c/1286857
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600687}
[modify] https://crrev.com/cdf14f5ad9f7f77d94b841416590a8e2d50c2f80/chrome/browser/about_flags.cc
[modify] https://crrev.com/cdf14f5ad9f7f77d94b841416590a8e2d50c2f80/chrome/browser/flag_descriptions.cc
[modify] https://crrev.com/cdf14f5ad9f7f77d94b841416590a8e2d50c2f80/chrome/browser/flag_descriptions.h
[modify] https://crrev.com/cdf14f5ad9f7f77d94b841416590a8e2d50c2f80/content/child/runtime_features.cc
[modify] https://crrev.com/cdf14f5ad9f7f77d94b841416590a8e2d50c2f80/content/public/common/content_features.cc

This launched in M70. Wohoo!

Any bugfixes or further improvements should get their own bugs. 
Status: Fixed (was: Started)
Showing comments 85 - 184 of 184 Older

Sign in to add a comment