New issue
Advanced search Search tips

Issue 830196 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: May 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac , Fuchsia
Pri: 3
Type: Bug

Blocking:
issue 757440



Sign in to add a comment

MarkPhasePrologue needs to be split for incremental marking

Project Member Reported by mlippautz@chromium.org, Apr 7 2018

Issue description

I think the finalization needs at least

  Heap().MakeConsistentForGC();

as this clears this linear allocation area. Otherwise, we might be left with a stale linear allocation area that randomly points into free space.

We need to also check other things e.g.
  Heap().FlushHeapDoesNotContainCacheIfNeeded();
  Heap().ClearArenaAges();
 
Project Member

Comment 1 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

Project Member

Comment 2 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 3 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

Status: Fixed (was: Assigned)

Sign in to add a comment