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

Issue 651354 link

Starred by 0 users

Issue metadata

Status: Started
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Feature


Sign in to add a comment

Young generation mark compact collection

Project Member Reported by mlippautz@chromium.org, Sep 29 2016

Issue description

Tracking bug for implementing young generation mark compact collection
 
Showing comments 8 - 107 of 107 Older
Project Member

Comment 10 by bugdroid1@chromium.org, Nov 15 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/9b5bdfeaebfdd34af5aae9b2bfeacb620cc4707d

commit 9b5bdfeaebfdd34af5aae9b2bfeacb620cc4707d
Author: mlippautz <mlippautz@chromium.org>
Date: Tue Nov 15 18:22:05 2016

[heap] Only visit strong links during scavenge of promoted objects

Previously, we also used to treat the link as strong, when iterating a promoted
JSFunction.

BUG=chromium:651354

Review-Url: https://codereview.chromium.org/2506633002
Cr-Commit-Position: refs/heads/master@{#41008}

[modify] https://crrev.com/9b5bdfeaebfdd34af5aae9b2bfeacb620cc4707d/src/heap/heap.cc
[modify] https://crrev.com/9b5bdfeaebfdd34af5aae9b2bfeacb620cc4707d/src/heap/heap.h
[modify] https://crrev.com/9b5bdfeaebfdd34af5aae9b2bfeacb620cc4707d/src/heap/mark-compact.h

Project Member

Comment 11 by bugdroid1@chromium.org, Nov 18 2016

Labels: merge-merged-5.6
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/9b5bdfeaebfdd34af5aae9b2bfeacb620cc4707d

commit 9b5bdfeaebfdd34af5aae9b2bfeacb620cc4707d
Author: mlippautz <mlippautz@chromium.org>
Date: Tue Nov 15 18:22:05 2016

[heap] Only visit strong links during scavenge of promoted objects

Previously, we also used to treat the link as strong, when iterating a promoted
JSFunction.

BUG=chromium:651354

Review-Url: https://codereview.chromium.org/2506633002
Cr-Commit-Position: refs/heads/master@{#41008}

[modify] https://crrev.com/9b5bdfeaebfdd34af5aae9b2bfeacb620cc4707d/src/heap/heap.cc
[modify] https://crrev.com/9b5bdfeaebfdd34af5aae9b2bfeacb620cc4707d/src/heap/heap.h
[modify] https://crrev.com/9b5bdfeaebfdd34af5aae9b2bfeacb620cc4707d/src/heap/mark-compact.h

Project Member

Comment 12 by bugdroid1@chromium.org, Nov 18 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/7e5755cbc594b610fc26493a2bad547dd69138f3

commit 7e5755cbc594b610fc26493a2bad547dd69138f3
Author: mlippautz <mlippautz@chromium.org>
Date: Fri Nov 18 12:55:53 2016

[heap] Minor MC: Add marking

Adds the marking logic to mark the young generation.

BUG=chromium:651354

Review-Url: https://codereview.chromium.org/2498583002
Cr-Commit-Position: refs/heads/master@{#41104}

[modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/src/global-handles.cc
[modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/src/global-handles.h
[modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/src/heap/gc-idle-time-handler.cc
[modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/src/heap/gc-idle-time-handler.h
[modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/src/heap/gc-tracer.cc
[modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/src/heap/gc-tracer.h
[modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/src/heap/heap.cc
[modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/src/heap/heap.h
[modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/src/heap/mark-compact.cc
[modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/src/heap/mark-compact.h
[modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/test/cctest/heap/heap-utils.cc
[modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/test/cctest/heap/test-array-buffer-tracker.cc
[modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/test/cctest/heap/test-heap.cc
[modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/test/cctest/heap/test-page-promotion.cc
[modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/test/cctest/test-serialize.cc
[modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/test/cctest/test-weakmaps.cc
[modify] https://crrev.com/7e5755cbc594b610fc26493a2bad547dd69138f3/test/unittests/heap/gc-idle-time-handler-unittest.cc

Project Member

Comment 13 by bugdroid1@chromium.org, Jan 20 2017

Project Member

Comment 14 by bugdroid1@chromium.org, Jan 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/3258bef0adc66fa2722ccea364fd3655e4a9e5d6

commit 3258bef0adc66fa2722ccea364fd3655e4a9e5d6
Author: bmeurer <bmeurer@chromium.org>
Date: Fri Jan 20 08:30:08 2017

Revert of [heap] Provide ObjectMarking with marking transitions (patchset #5 id:80001 of https://codereview.chromium.org/2644523002/ )

Reason for revert:
Breaks the tree: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20gc%20stress/builds/8349/steps/Mjsunit/logs/compiled-module-seria..

Original issue's description:
> [heap] Provide ObjectMarking with marking transitions
>
> BUG=chromium:651354
>
> Review-Url: https://codereview.chromium.org/2644523002
> Cr-Commit-Position: refs/heads/master@{#42531}
> Committed: https://chromium.googlesource.com/v8/v8/+/cbb8929e97ee475dab4f704a71637e76342e903a

TBR=hpayer@chromium.org,mlippautz@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:651354

Review-Url: https://codereview.chromium.org/2647873002
Cr-Commit-Position: refs/heads/master@{#42533}

[modify] https://crrev.com/3258bef0adc66fa2722ccea364fd3655e4a9e5d6/src/heap/array-buffer-tracker.cc
[modify] https://crrev.com/3258bef0adc66fa2722ccea364fd3655e4a9e5d6/src/heap/heap.cc
[modify] https://crrev.com/3258bef0adc66fa2722ccea364fd3655e4a9e5d6/src/heap/incremental-marking.cc
[modify] https://crrev.com/3258bef0adc66fa2722ccea364fd3655e4a9e5d6/src/heap/incremental-marking.h
[modify] https://crrev.com/3258bef0adc66fa2722ccea364fd3655e4a9e5d6/src/heap/mark-compact-inl.h
[modify] https://crrev.com/3258bef0adc66fa2722ccea364fd3655e4a9e5d6/src/heap/mark-compact.cc
[modify] https://crrev.com/3258bef0adc66fa2722ccea364fd3655e4a9e5d6/src/heap/mark-compact.h
[modify] https://crrev.com/3258bef0adc66fa2722ccea364fd3655e4a9e5d6/src/heap/objects-visiting-inl.h
[modify] https://crrev.com/3258bef0adc66fa2722ccea364fd3655e4a9e5d6/src/heap/scavenger.cc
[modify] https://crrev.com/3258bef0adc66fa2722ccea364fd3655e4a9e5d6/src/heap/spaces.cc
[modify] https://crrev.com/3258bef0adc66fa2722ccea364fd3655e4a9e5d6/src/objects-inl.h

Project Member

Comment 15 by bugdroid1@chromium.org, Jan 20 2017

Project Member

Comment 16 by bugdroid1@chromium.org, Feb 9 2017

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

commit f227aa1ce52a71916814f814a54bd0e5c735720a
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Feb 09 15:30:14 2017

[heap] Remove unused parameter from MC::MarkObject

BUG=chromium:651354

Change-Id: I8d74133ca9b21ce9e0612efc1e5ace41d1002dae
Reviewed-on: https://chromium-review.googlesource.com/440304
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43064}
[modify] https://crrev.com/f227aa1ce52a71916814f814a54bd0e5c735720a/src/heap/heap.cc
[modify] https://crrev.com/f227aa1ce52a71916814f814a54bd0e5c735720a/src/heap/mark-compact-inl.h
[modify] https://crrev.com/f227aa1ce52a71916814f814a54bd0e5c735720a/src/heap/mark-compact.cc
[modify] https://crrev.com/f227aa1ce52a71916814f814a54bd0e5c735720a/src/heap/mark-compact.h

Project Member

Comment 17 by bugdroid1@chromium.org, Feb 22 2017

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

commit e800933eee938161cc53edbd5e8dd3fae66c8453
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed Feb 22 15:15:11 2017

[heap] Refactor evacuation routine

Have clear prologue and epilogue steps. For a minor MC we can then
templatize the prologue without changing the actual evacuation routine.

BUG=chromium:651354

Change-Id: Ia238748e90bc6b616cd813d31198de182fe11498
Reviewed-on: https://chromium-review.googlesource.com/445898
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43378}
[modify] https://crrev.com/e800933eee938161cc53edbd5e8dd3fae66c8453/src/heap/gc-tracer.cc
[modify] https://crrev.com/e800933eee938161cc53edbd5e8dd3fae66c8453/src/heap/gc-tracer.h
[modify] https://crrev.com/e800933eee938161cc53edbd5e8dd3fae66c8453/src/heap/mark-compact.cc
[modify] https://crrev.com/e800933eee938161cc53edbd5e8dd3fae66c8453/src/heap/mark-compact.h

Project Member

Comment 19 by bugdroid1@chromium.org, Mar 2 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/12963af725dbaf031c27ceed07b4cf63225bc784

commit 12963af725dbaf031c27ceed07b4cf63225bc784
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Mar 02 13:27:05 2017

[heap] Support for minor MC marking during incremental marking part 1

First part of relanding d2c093bcafb0ec4795078424176e40ccb5f715aa.

BUG=chromium:651354

Change-Id: I34ebea331d482d5039626ccff48b11ad175793ee
Reviewed-on: https://chromium-review.googlesource.com/448518
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43541}
[modify] https://crrev.com/12963af725dbaf031c27ceed07b4cf63225bc784/src/heap/mark-compact.cc
[modify] https://crrev.com/12963af725dbaf031c27ceed07b4cf63225bc784/src/heap/mark-compact.h
[modify] https://crrev.com/12963af725dbaf031c27ceed07b4cf63225bc784/src/heap/spaces-inl.h
[modify] https://crrev.com/12963af725dbaf031c27ceed07b4cf63225bc784/src/heap/spaces.h

Project Member

Comment 21 by bugdroid1@chromium.org, Mar 8 2017

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

commit efd4b2d3af8e122c76d05e692416a4e71d10de67
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed Mar 08 12:01:10 2017

[heap] Bail out for page promotion tests when feature is disabled

BUG=chromium:651354

Change-Id: Iaa2be2504474842d101f19fa2f6c15baa88544c6
Reviewed-on: https://chromium-review.googlesource.com/451497
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43665}
[modify] https://crrev.com/efd4b2d3af8e122c76d05e692416a4e71d10de67/test/cctest/heap/test-page-promotion.cc

Project Member

Comment 22 by bugdroid1@chromium.org, Mar 8 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/215af922ca00c29e44ad474c3ea5281fb2b50c3e

commit 215af922ca00c29e44ad474c3ea5281fb2b50c3e
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed Mar 08 12:40:14 2017

[heap] Reuse space of last closed LAB

Reuse the last LAB's unused area for further newspace allocation.

This is relevant when we expect GCs that use evacuation to compact down
new space to just live bytes for single tasks.

BUG=chromium:651354

Change-Id: Ic418521d98f418a93d3748b824e3ddb6ff7a40c3
Reviewed-on: https://chromium-review.googlesource.com/451398
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43670}
[modify] https://crrev.com/215af922ca00c29e44ad474c3ea5281fb2b50c3e/src/heap/mark-compact.cc
[modify] https://crrev.com/215af922ca00c29e44ad474c3ea5281fb2b50c3e/src/heap/spaces.cc
[modify] https://crrev.com/215af922ca00c29e44ad474c3ea5281fb2b50c3e/src/heap/spaces.h

Project Member

Comment 23 by bugdroid1@chromium.org, Mar 9 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/99bdf971c873a103b48f0d4712f91222892980e3

commit 99bdf971c873a103b48f0d4712f91222892980e3
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Mar 09 13:39:04 2017

[heap] Fix out-of-bounds read in LiveObjectIterator::Next

We need to check whether advancing the iterator moved us beyong the end
of the bitmap. This has not been flushed out as our inlined bitmap is
still in valid memory.

In practice this is not a problem because the value is never used as we
are at the end of the bitmap. Asan rightfully complains when using an
external bitmap though.

BUG=chromium:651354

Change-Id: I8b141a467e9552f8ac2287dd62a725a14a289a37
Reviewed-on: https://chromium-review.googlesource.com/452497
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43696}
[modify] https://crrev.com/99bdf971c873a103b48f0d4712f91222892980e3/src/heap/mark-compact-inl.h
[modify] https://crrev.com/99bdf971c873a103b48f0d4712f91222892980e3/src/heap/mark-compact.h

Project Member

Comment 24 by bugdroid1@chromium.org, Mar 21 2017

Project Member

Comment 25 by bugdroid1@chromium.org, Mar 21 2017

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

commit 6deb226705493efb3a6ebe083f0547174fc34cad
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue Mar 21 13:54:17 2017

[heap] Untangle Evacuator from MarkCompactCollector

BUG=chromium:651354

Change-Id: I15b2ee763882af369bf4b6274ce04e52dfb657e7
Reviewed-on: https://chromium-review.googlesource.com/457321
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43980}
[modify] https://crrev.com/6deb226705493efb3a6ebe083f0547174fc34cad/src/heap/mark-compact.cc
[modify] https://crrev.com/6deb226705493efb3a6ebe083f0547174fc34cad/src/heap/mark-compact.h
[modify] https://crrev.com/6deb226705493efb3a6ebe083f0547174fc34cad/src/heap/spaces.h

Project Member

Comment 26 by bugdroid1@chromium.org, Mar 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/8f6135f1d214645bf4df5ca87e99151fb0427e00

commit 8f6135f1d214645bf4df5ca87e99151fb0427e00
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed Mar 22 13:35:39 2017

[heap] Refactor marking verification

Use MarkingState to abstract over the different sets of markbits.

BUG=chromium:651354

Change-Id: I1635eb0d441be2aeed19f0ed91999f0f0f1bbffc
Reviewed-on: https://chromium-review.googlesource.com/458398
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44024}
[modify] https://crrev.com/8f6135f1d214645bf4df5ca87e99151fb0427e00/src/heap/mark-compact.cc

Project Member

Comment 27 by bugdroid1@chromium.org, Mar 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/761514fe04bc30f5b5e3d709883010658f1358aa

commit 761514fe04bc30f5b5e3d709883010658f1358aa
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed Mar 22 15:42:58 2017

[heap] Evacuator: Factor out dependencies

BUG=chromium:651354

Change-Id: Ic4cc354160b84267a4d930734120b68c2b7ba092
Reviewed-on: https://chromium-review.googlesource.com/458351
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44030}
[modify] https://crrev.com/761514fe04bc30f5b5e3d709883010658f1358aa/src/heap/mark-compact.cc

Project Member

Comment 30 by bugdroid1@chromium.org, Mar 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/79ac83e121fe60b53e636197c28e345737f5e68a

commit 79ac83e121fe60b53e636197c28e345737f5e68a
Author: mlippautz <mlippautz@chromium.org>
Date: Fri Mar 24 18:54:04 2017

[heap] Enforce explicit MarkingState

Require the use of MarkingState when going through ObjectMarking
and friends.

BUG=chromium:651354

Review-Url: https://codereview.chromium.org/2770253002
Cr-Commit-Position: refs/heads/master@{#44123}

[modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/src/heap/array-buffer-tracker.cc
[modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/src/heap/heap.cc
[modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/src/heap/incremental-marking.cc
[modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/src/heap/incremental-marking.h
[modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/src/heap/mark-compact-inl.h
[modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/src/heap/mark-compact.cc
[modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/src/heap/mark-compact.h
[modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/src/heap/object-stats.cc
[modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/src/heap/objects-visiting-inl.h
[modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/src/heap/scavenger.cc
[modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/src/heap/spaces-inl.h
[modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/src/heap/spaces.cc
[modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/src/heap/spaces.h
[modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/src/objects-inl.h
[modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/test/cctest/heap/test-compaction.cc
[modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/test/cctest/heap/test-heap.cc
[modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/test/cctest/heap/test-mark-compact.cc
[modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/test/cctest/heap/test-page-promotion.cc
[modify] https://crrev.com/79ac83e121fe60b53e636197c28e345737f5e68a/test/cctest/test-unboxed-doubles.cc

Project Member

Comment 31 by bugdroid1@chromium.org, Apr 4 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/396f1e242184b936c61dda7a14d1306d43b1863c

commit 396f1e242184b936c61dda7a14d1306d43b1863c
Author: mlippautz <mlippautz@chromium.org>
Date: Tue Apr 04 13:05:33 2017

[heap] Refactor evacuation verifier

BUG=chromium:651354

Review-Url: https://codereview.chromium.org/2790373002
Cr-Commit-Position: refs/heads/master@{#44375}

[modify] https://crrev.com/396f1e242184b936c61dda7a14d1306d43b1863c/src/heap/mark-compact.cc

Project Member

Comment 32 by bugdroid1@chromium.org, Apr 4 2017

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

commit c766727ae69d43db66415a3483acc0e846b444d7
Author: machenbach <machenbach@chromium.org>
Date: Tue Apr 04 14:06:12 2017

Revert of [heap] Refactor evacuation verifier (patchset #1 id:1 of https://codereview.chromium.org/2790373002/ )

Reason for revert:
Speculative revert. Breaks https://build.chromium.org/p/client.v8/builders/V8%20Win64%20-%20debug/builds/16112 and seems to lead to flakes.

Original issue's description:
> [heap] Refactor evacuation verifier
>
> BUG=chromium:651354
>
> Review-Url: https://codereview.chromium.org/2790373002
> Cr-Commit-Position: refs/heads/master@{#44375}
> Committed: https://chromium.googlesource.com/v8/v8/+/396f1e242184b936c61dda7a14d1306d43b1863c

TBR=ulan@chromium.org,mlippautz@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:651354

Review-Url: https://codereview.chromium.org/2795903004
Cr-Commit-Position: refs/heads/master@{#44377}

[modify] https://crrev.com/c766727ae69d43db66415a3483acc0e846b444d7/src/heap/mark-compact.cc

Project Member

Comment 34 by bugdroid1@chromium.org, Apr 4 2017

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

commit eddf90c4a750f88c75c11f344675f27942da0400
Author: mlippautz <mlippautz@chromium.org>
Date: Tue Apr 04 14:47:06 2017

Revert of [heap] Fix CompactionSpace test and move to unittests (patchset #3 id:40001 of https://codereview.chromium.org/2796033002/ )

Reason for revert:
Breaks
https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Linux%20-%20shared/builds/17291

Original issue's description:
> [heap] Fix CompactionSpace test and move to unittests
>
> BUG=chromium:651354
>
> Review-Url: https://codereview.chromium.org/2796033002
> Cr-Commit-Position: refs/heads/master@{#44382}
> Committed: https://chromium.googlesource.com/v8/v8/+/ce9a2db1e13131245d8adc2757b9d9202ba568e0

TBR=ulan@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:651354

Review-Url: https://codereview.chromium.org/2793033004
Cr-Commit-Position: refs/heads/master@{#44383}

[modify] https://crrev.com/eddf90c4a750f88c75c11f344675f27942da0400/src/heap/heap.h
[modify] https://crrev.com/eddf90c4a750f88c75c11f344675f27942da0400/src/heap/spaces.h
[modify] https://crrev.com/eddf90c4a750f88c75c11f344675f27942da0400/test/cctest/heap/test-spaces.cc
[modify] https://crrev.com/eddf90c4a750f88c75c11f344675f27942da0400/test/unittests/BUILD.gn
[delete] https://crrev.com/ce9a2db1e13131245d8adc2757b9d9202ba568e0/test/unittests/heap/spaces-unittest.cc
[modify] https://crrev.com/eddf90c4a750f88c75c11f344675f27942da0400/test/unittests/unittests.gyp

Project Member

Comment 35 by bugdroid1@chromium.org, Apr 4 2017

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

commit 6d89de7b9e5fc3a5f9d0fa2cef51864191d5ff5f
Author: mlippautz <mlippautz@chromium.org>
Date: Tue Apr 04 16:11:56 2017

Reland of [heap] Refactor evacuation verifier

This reverts commit c766727ae69d43db66415a3483acc0e846b444d7.

BUG=chromium:651354

Review-Url: https://codereview.chromium.org/2793323002
Cr-Commit-Position: refs/heads/master@{#44386}

[modify] https://crrev.com/6d89de7b9e5fc3a5f9d0fa2cef51864191d5ff5f/src/heap/mark-compact.cc

Project Member

Comment 38 by bugdroid1@chromium.org, Apr 6 2017

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

commit d265d3a274ee5766d370f3a977cc558099fbbd66
Author: mlippautz <mlippautz@chromium.org>
Date: Thu Apr 06 16:12:24 2017

[heap] Fix off-by-one cell read in verification methods

The actual value was always &-ed with 0 so technically correct. ASAN
rightfully complains when allocating an external bitmap though.

BUG=chromium:651354
R=ulan@chromium.org

Review-Url: https://codereview.chromium.org/2799283002
Cr-Commit-Position: refs/heads/master@{#44453}

[modify] https://crrev.com/d265d3a274ee5766d370f3a977cc558099fbbd66/src/heap/marking.h

Blockedon: v8:6277
Project Member

Comment 40 by bugdroid1@chromium.org, Apr 21 2017

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

commit e863286b33d0ced9549e124eec6c7e165e866533
Author: mlippautz <mlippautz@chromium.org>
Date: Fri Apr 21 10:06:47 2017

[heap] Allow concurrently transferring colors

Adds general support for concurrent modifications to live byte counters.

BUG=chromium:651354

Review-Url: https://codereview.chromium.org/2836583002
Cr-Commit-Position: refs/heads/master@{#44767}

[modify] https://crrev.com/e863286b33d0ced9549e124eec6c7e165e866533/src/heap/incremental-marking.h
[modify] https://crrev.com/e863286b33d0ced9549e124eec6c7e165e866533/src/heap/mark-compact.h
[modify] https://crrev.com/e863286b33d0ced9549e124eec6c7e165e866533/src/heap/spaces.h

Project Member

Comment 41 by bugdroid1@chromium.org, Apr 24 2017

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

commit 2c9fc184743dac8627b78a5990522525f35a0007
Author: mlippautz <mlippautz@chromium.org>
Date: Mon Apr 24 15:04:18 2017

[heap] Refactor MC and introduce MarkCompactCollectorBase

- Dispatch evacuation of a page to its concrete evacuator.
- Create MC base class to accommodate shared state.

BUG=chromium:651354

Review-Url: https://codereview.chromium.org/2828323004
Cr-Commit-Position: refs/heads/master@{#44807}

[modify] https://crrev.com/2c9fc184743dac8627b78a5990522525f35a0007/src/heap/heap.cc
[modify] https://crrev.com/2c9fc184743dac8627b78a5990522525f35a0007/src/heap/heap.h
[modify] https://crrev.com/2c9fc184743dac8627b78a5990522525f35a0007/src/heap/mark-compact.cc
[modify] https://crrev.com/2c9fc184743dac8627b78a5990522525f35a0007/src/heap/mark-compact.h

Project Member

Comment 42 by bugdroid1@chromium.org, Apr 25 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/8887945e90dcae78df7ead48ecb965f36d57081d

commit 8887945e90dcae78df7ead48ecb965f36d57081d
Author: mlippautz <mlippautz@chromium.org>
Date: Tue Apr 25 14:46:30 2017

[heap] MC: Refactor page evacuation

Evacuators shoud know their associated collector and thus figure out the
marking state themselves.

BUG=chromium:651354

Review-Url: https://codereview.chromium.org/2840863002
Cr-Commit-Position: refs/heads/master@{#44864}

[modify] https://crrev.com/8887945e90dcae78df7ead48ecb965f36d57081d/src/heap/mark-compact.cc
[modify] https://crrev.com/8887945e90dcae78df7ead48ecb965f36d57081d/src/heap/mark-compact.h

Project Member

Comment 43 by bugdroid1@chromium.org, Apr 25 2017

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

commit e665ceba163eefa8c1ad964406c2ddb2bddb1a3a
Author: mlippautz <mlippautz@chromium.org>
Date: Tue Apr 25 19:26:10 2017

[heap] Allow overriding recording for slots migration

BUG=chromium:651354

Review-Url: https://codereview.chromium.org/2842803002
Cr-Commit-Position: refs/heads/master@{#44866}

[modify] https://crrev.com/e665ceba163eefa8c1ad964406c2ddb2bddb1a3a/src/heap/mark-compact.cc

Project Member

Comment 44 by bugdroid1@chromium.org, Apr 27 2017

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

commit 6cc6672fde53458667b4d2ef212a4157dc76d4c1
Author: mlippautz <mlippautz@chromium.org>
Date: Thu Apr 27 09:23:51 2017

[heap] Verify that new space objects are in to space after evacuation

BUG=chromium:651354

Review-Url: https://codereview.chromium.org/2846683003
Cr-Commit-Position: refs/heads/master@{#44918}

[modify] https://crrev.com/6cc6672fde53458667b4d2ef212a4157dc76d4c1/src/heap/mark-compact.cc

Project Member

Comment 45 by bugdroid1@chromium.org, May 2 2017

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

commit b692e8b112ade0b3d47ef0202b98e7d5269141bd
Author: mlippautz <mlippautz@chromium.org>
Date: Tue May 02 10:46:17 2017

[heap] Add concept of migration observers to evacuation

Currently used for observing moves for profiling. In the future this
will be used to transfer colors for the minor MC too.

BUG=chromium:651354

Review-Url: https://codereview.chromium.org/2846043003
Cr-Commit-Position: refs/heads/master@{#45021}

[modify] https://crrev.com/b692e8b112ade0b3d47ef0202b98e7d5269141bd/src/heap/mark-compact.cc
[modify] https://crrev.com/b692e8b112ade0b3d47ef0202b98e7d5269141bd/src/heap/mark-compact.h

Project Member

Comment 46 by bugdroid1@chromium.org, May 3 2017

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

commit bf74d43de055393d97a3db4f01e4c832e35af10f
Author: mlippautz <mlippautz@chromium.org>
Date: Wed May 03 21:31:06 2017

[heap] MinorMC: Evacuation for young generation

In the spirit of the full MC, we evacuate and update pointers in parallel for
the young generation.

The collectors are connected during incremental marking when mark bits are
transferred from the young generation bitmap to the old generation bitmap.

The evacuation phase cannot (yet) move pages and relies completely on copying
objects.

BUG=chromium:651354

Review-Url: https://codereview.chromium.org/2796233003
Cr-Commit-Position: refs/heads/master@{#45074}

[modify] https://crrev.com/bf74d43de055393d97a3db4f01e4c832e35af10f/src/flag-definitions.h
[modify] https://crrev.com/bf74d43de055393d97a3db4f01e4c832e35af10f/src/heap/gc-tracer.cc
[modify] https://crrev.com/bf74d43de055393d97a3db4f01e4c832e35af10f/src/heap/gc-tracer.h
[modify] https://crrev.com/bf74d43de055393d97a3db4f01e4c832e35af10f/src/heap/mark-compact.cc
[modify] https://crrev.com/bf74d43de055393d97a3db4f01e4c832e35af10f/src/heap/mark-compact.h
[modify] https://crrev.com/bf74d43de055393d97a3db4f01e4c832e35af10f/src/heap/spaces-inl.h
[modify] https://crrev.com/bf74d43de055393d97a3db4f01e4c832e35af10f/src/heap/spaces.cc
[modify] https://crrev.com/bf74d43de055393d97a3db4f01e4c832e35af10f/src/heap/spaces.h
[modify] https://crrev.com/bf74d43de055393d97a3db4f01e4c832e35af10f/test/cctest/heap/test-page-promotion.cc
[modify] https://crrev.com/bf74d43de055393d97a3db4f01e4c832e35af10f/test/cctest/heap/test-spaces.cc
[modify] https://crrev.com/bf74d43de055393d97a3db4f01e4c832e35af10f/test/cctest/test-strings.cc
[modify] https://crrev.com/bf74d43de055393d97a3db4f01e4c832e35af10f/test/unittests/heap/spaces-unittest.cc

Project Member

Comment 47 by bugdroid1@chromium.org, May 8 2017

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

commit efcdd33a316a04f0345d1a66c90f6825df3a7ad3
Author: mlippautz <mlippautz@chromium.org>
Date: Mon May 08 13:45:18 2017

[heap] Minor MC: Flush concurrent external memory counter

BUG=chromium:651354

Review-Url: https://codereview.chromium.org/2871543002
Cr-Commit-Position: refs/heads/master@{#45159}

[modify] https://crrev.com/efcdd33a316a04f0345d1a66c90f6825df3a7ad3/src/heap/mark-compact.cc

Project Member

Comment 51 by bugdroid1@chromium.org, May 11 2017

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

commit 4ea91a0190ab5a167791eb0e2e47d355068193a3
Author: mlippautz <mlippautz@chromium.org>
Date: Thu May 11 08:06:59 2017

[heap] MinorMC: Only iterate new space global handles for ptr updates

The reason we need this mode is that IterateRoots for the Scavenger only
captures dependent weak nodes. This is also what we do for marking for the
minor MC.

Since the regular marking might also mark objects that are weakly
(non-dependently) pointed to by nodes we need to capture all of them during
pointers updating. The reason this works for the Scavenger is because we do one
pass at the end of the scavenger (combined with resetting) that captures all
those nodes.

BUG=chromium:651354

Review-Url: https://codereview.chromium.org/2869413002
Cr-Commit-Position: refs/heads/master@{#45248}

[modify] https://crrev.com/4ea91a0190ab5a167791eb0e2e47d355068193a3/src/global-handles.cc
[modify] https://crrev.com/4ea91a0190ab5a167791eb0e2e47d355068193a3/src/global-handles.h
[modify] https://crrev.com/4ea91a0190ab5a167791eb0e2e47d355068193a3/src/globals.h
[modify] https://crrev.com/4ea91a0190ab5a167791eb0e2e47d355068193a3/src/heap/heap.cc
[modify] https://crrev.com/4ea91a0190ab5a167791eb0e2e47d355068193a3/src/heap/mark-compact.cc

Project Member

Comment 52 by bugdroid1@chromium.org, May 11 2017

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

commit ece19e99b148887b92e58f271d1abc1483d82232
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu May 11 13:02:56 2017

[heap] MinorMC: Use HeapVisitor instead of StaticNewSpacevisitor

Bug: chromium:651354
Change-Id: I797a0eee698c9c5a6bf191fb041111c9ff5440cf
Reviewed-on: https://chromium-review.googlesource.com/503227
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45258}
[modify] https://crrev.com/ece19e99b148887b92e58f271d1abc1483d82232/src/heap/mark-compact-inl.h
[modify] https://crrev.com/ece19e99b148887b92e58f271d1abc1483d82232/src/heap/mark-compact.cc
[modify] https://crrev.com/ece19e99b148887b92e58f271d1abc1483d82232/src/heap/mark-compact.h

Project Member

Comment 53 by bugdroid1@chromium.org, May 11 2017

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

commit b2bf0c986efaffe6b662c84502af96d04f979f94
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu May 11 17:36:16 2017

[heap] MinorMC: Update gc tracer counters

Bug: chromium:651354
Change-Id: I356d551f249c9c9c785bb082412ff872639f692f
Reviewed-on: https://chromium-review.googlesource.com/502813
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45263}
[modify] https://crrev.com/b2bf0c986efaffe6b662c84502af96d04f979f94/src/heap/gc-tracer.cc
[modify] https://crrev.com/b2bf0c986efaffe6b662c84502af96d04f979f94/src/heap/gc-tracer.h
[modify] https://crrev.com/b2bf0c986efaffe6b662c84502af96d04f979f94/src/heap/heap.cc
[modify] https://crrev.com/b2bf0c986efaffe6b662c84502af96d04f979f94/src/heap/mark-compact.cc

Project Member

Comment 54 by bugdroid1@chromium.org, May 12 2017

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

commit fc5765ce7901767ba9298241454f736c17b4f9b3
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Fri May 12 13:41:14 2017

[heap] Simplify PageParallelJob

Remove FinalizePageSequentially as it had only a single use case that
was tied to the full collector.

Bug: chromium:651354
Change-Id: I03299ddbd439ea273e02dd33f12c005371694130
Reviewed-on: https://chromium-review.googlesource.com/504508
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45280}
[modify] https://crrev.com/fc5765ce7901767ba9298241454f736c17b4f9b3/src/heap/mark-compact.cc
[modify] https://crrev.com/fc5765ce7901767ba9298241454f736c17b4f9b3/src/heap/mark-compact.h
[modify] https://crrev.com/fc5765ce7901767ba9298241454f736c17b4f9b3/src/heap/page-parallel-job.h

Project Member

Comment 55 by bugdroid1@chromium.org, May 15 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/6546bfe316d29a713c432dfc4aceb8ef676c099b

commit 6546bfe316d29a713c432dfc4aceb8ef676c099b
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Mon May 15 13:53:27 2017

[heap] Factor out NumberOfAvailableCores

Bug: chromium:651354
Change-Id: Ie940c8715a33e5fc8e8859c4660ab14ecc6f9233
Reviewed-on: https://chromium-review.googlesource.com/505488
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45302}
[modify] https://crrev.com/6546bfe316d29a713c432dfc4aceb8ef676c099b/src/heap/mark-compact.cc

Project Member

Comment 56 by bugdroid1@chromium.org, May 16 2017

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

commit a1de6262bf2176c4b7f55ff2d0cf63dabea945c0
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue May 16 09:10:52 2017

[heap] MinorMC: Use different recursion strategy

Only use recursion for objects with more than
kMinRangeForMarkingRecursion (8) pointers.

Bug: chromium:651354
Change-Id: Ic71967ef535f6a32268c7097301a313db2335bf8
Reviewed-on: https://chromium-review.googlesource.com/505615
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45326}
[modify] https://crrev.com/a1de6262bf2176c4b7f55ff2d0cf63dabea945c0/src/heap/mark-compact.cc

Project Member

Comment 58 by bugdroid1@chromium.org, May 17 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/15805b2d537c92b98a6c8db6a464dcefe07f4910

commit 15805b2d537c92b98a6c8db6a464dcefe07f4910
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed May 17 08:31:04 2017

[heap] Fix ItemParallelJobTest.DistributeItemsMultipleTasks

TBR=ulan@chromium.org

Bug: chromium:651354
Change-Id: Ib3a53a62e048e438bc31cbfd2ea44d17fd6a3b94
Reviewed-on: https://chromium-review.googlesource.com/506204
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45360}
[modify] https://crrev.com/15805b2d537c92b98a6c8db6a464dcefe07f4910/test/unittests/heap/item-parallel-job-unittest.cc

Project Member

Comment 60 by bugdroid1@chromium.org, May 19 2017

Project Member

Comment 61 by bugdroid1@chromium.org, May 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/652c9522d3116faf9e8ba260dbc215462f380bd1

commit 652c9522d3116faf9e8ba260dbc215462f380bd1
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Mon May 22 13:31:41 2017

[heap] MinorMC: Identify unmodified global handles on the fly

For the Scavenger we require a first pass over global handles for identifying
unmodified nodes because the Scavenger might have already written forwarding
pointers during scanning, making it hard to perform the proper checks.

The minor MC does not mutate the object graph during marking and can thus merge
this phase into the regular phase executed during marking roots.

Furthermore, moves processing into the parallel marking phase of the minor MC
collector.

Bug:  chromium:720477 , chromium:651354
Change-Id: Id33552124264e3ab0bdf34d22ac30c19c1522707
Reviewed-on: https://chromium-review.googlesource.com/509550
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45461}
[modify] https://crrev.com/652c9522d3116faf9e8ba260dbc215462f380bd1/src/global-handles.cc
[modify] https://crrev.com/652c9522d3116faf9e8ba260dbc215462f380bd1/src/global-handles.h
[modify] https://crrev.com/652c9522d3116faf9e8ba260dbc215462f380bd1/src/globals.h
[modify] https://crrev.com/652c9522d3116faf9e8ba260dbc215462f380bd1/src/heap/gc-tracer.cc
[modify] https://crrev.com/652c9522d3116faf9e8ba260dbc215462f380bd1/src/heap/gc-tracer.h
[modify] https://crrev.com/652c9522d3116faf9e8ba260dbc215462f380bd1/src/heap/heap.cc
[modify] https://crrev.com/652c9522d3116faf9e8ba260dbc215462f380bd1/src/heap/heap.h
[modify] https://crrev.com/652c9522d3116faf9e8ba260dbc215462f380bd1/src/heap/mark-compact.cc
[modify] https://crrev.com/652c9522d3116faf9e8ba260dbc215462f380bd1/src/objects.cc
[modify] https://crrev.com/652c9522d3116faf9e8ba260dbc215462f380bd1/src/objects.h

Project Member

Comment 62 by bugdroid1@chromium.org, May 23 2017

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

commit 1da7c49cd8123333e2cc381ef8089cb7b42e1a3a
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue May 23 09:55:27 2017

[heap] MinorMC: Cleanup dead code and reshuffle visitor allocation

- Visitors are now part of the tasks.
- There's one visitor extra for the main thread.

Bug: chromium:651354
Change-Id: I6c1d109e9d2a2092c0f06fee5a158d101ac6bc2a
Reviewed-on: https://chromium-review.googlesource.com/512302
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45480}
[modify] https://crrev.com/1da7c49cd8123333e2cc381ef8089cb7b42e1a3a/src/heap/mark-compact.cc
[modify] https://crrev.com/1da7c49cd8123333e2cc381ef8089cb7b42e1a3a/src/heap/mark-compact.h

Project Member

Comment 63 by bugdroid1@chromium.org, May 23 2017

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

commit d085eee20d0b2cf0722029e1bb3fe65e963382bf
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue May 23 12:02:20 2017

[heap] Optimize young generation marking

- Only mark a single bit (grey)
- Increment live bytes after visiting, avoiding the map lookup for size
  in ObjectMarking

Raw speed improvements should be around 20%-30%.

Bug: chromium:651354
Change-Id: Ib58d1aee0b99d8e628a0191f90a2ffad9324b915
Reviewed-on: https://chromium-review.googlesource.com/509548
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45484}
[modify] https://crrev.com/d085eee20d0b2cf0722029e1bb3fe65e963382bf/src/heap/incremental-marking.cc
[modify] https://crrev.com/d085eee20d0b2cf0722029e1bb3fe65e963382bf/src/heap/mark-compact.cc
[modify] https://crrev.com/d085eee20d0b2cf0722029e1bb3fe65e963382bf/src/heap/mark-compact.h

Project Member

Comment 64 by bugdroid1@chromium.org, May 23 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/36f78645a792e939750f6554e181fca5008d1136

commit 36f78645a792e939750f6554e181fca5008d1136
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue May 23 13:17:07 2017

[heap] MinorMC: Keep live bytes local in tasks

Keep the live bytes counter in a local hashmap. Merge back the counts
upon task destruction.

Bug: chromium:651354
Change-Id: Idd30e8fde690739d769a34e4650d8c0179fb5a75
Reviewed-on: https://chromium-review.googlesource.com/512642
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45488}
[modify] https://crrev.com/36f78645a792e939750f6554e181fca5008d1136/src/heap/mark-compact.cc
[modify] https://crrev.com/36f78645a792e939750f6554e181fca5008d1136/src/heap/spaces.h

Project Member

Comment 65 by bugdroid1@chromium.org, May 23 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/611ec69d85c44b1ff1616f1aa60c3de83b56e69d

commit 611ec69d85c44b1ff1616f1aa60c3de83b56e69d
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue May 23 16:45:37 2017

[heap] Micro optimizations for almost empty heaps

Bug: chromium:651354
Change-Id: If2a67a7166e412affad7e71eb06087cc1478892c
Reviewed-on: https://chromium-review.googlesource.com/512825
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45494}
[modify] https://crrev.com/611ec69d85c44b1ff1616f1aa60c3de83b56e69d/src/heap/mark-compact.cc
[modify] https://crrev.com/611ec69d85c44b1ff1616f1aa60c3de83b56e69d/src/heap/spaces.cc
[modify] https://crrev.com/611ec69d85c44b1ff1616f1aa60c3de83b56e69d/src/heap/spaces.h

Project Member

Comment 66 by bugdroid1@chromium.org, May 24 2017

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

commit 2c5ca0272423900cbfc7f571aa46be0ee6d54bf8
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed May 24 10:39:21 2017

[heap] MinorMC: Fix race when flushing back live bytes

NOTRY=true
TBR=hpayer@chromium.org

Bug: chromium:651354
Change-Id: Ibff438d987b07907b2c4463a42bef685864c1602
Reviewed-on: https://chromium-review.googlesource.com/513903
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45505}
[modify] https://crrev.com/2c5ca0272423900cbfc7f571aa46be0ee6d54bf8/src/heap/mark-compact.cc

Project Member

Comment 67 by bugdroid1@chromium.org, May 24 2017

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

commit bce2a50de69a3982972643ddfaec633ceb5ed32b
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed May 24 13:53:29 2017

[heap] Unify computation of parallel tasks

- Create getters for number of tasks for all parallel stages
- Count slots for the minor MC and limit tasks by the overall number of slots.
- Cleanup existing getters.

Bug: chromium:651354
Change-Id: I9f67cca4474cbe1800faff4a549fbec019b096ce
Reviewed-on: https://chromium-review.googlesource.com/512862
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45513}
[modify] https://crrev.com/bce2a50de69a3982972643ddfaec633ceb5ed32b/src/heap/mark-compact.cc
[modify] https://crrev.com/bce2a50de69a3982972643ddfaec633ceb5ed32b/src/heap/mark-compact.h
[modify] https://crrev.com/bce2a50de69a3982972643ddfaec633ceb5ed32b/src/heap/workstealing-marking-deque.h

Blockedon: 726040
Project Member

Comment 69 by bugdroid1@chromium.org, Jun 2 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/3fc2c27568fd7f3cf78f9dd074e23af7dd49d3cb

commit 3fc2c27568fd7f3cf78f9dd074e23af7dd49d3cb
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Fri Jun 02 13:10:08 2017

[heap] MinorMC: Fix page promotion during incremental marking

During incremental marking we need to clear to old generation
mark bits for promoted pages.

Bug: chromium:651354
Change-Id: I986de08d6a123b2eff3dd7824729cc1cfe29aeba
Reviewed-on: https://chromium-review.googlesource.com/522665
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45683}
[modify] https://crrev.com/3fc2c27568fd7f3cf78f9dd074e23af7dd49d3cb/src/heap/mark-compact.cc

Project Member

Comment 70 by bugdroid1@chromium.org, Jun 2 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/70f428bd65d14f2204e4452e61c8a9725b60bde6

commit 70f428bd65d14f2204e4452e61c8a9725b60bde6
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Fri Jun 02 14:46:47 2017

[heap] MinorMC: Avoid clearing mark bits for promoted pages

We need to keep the new space mark bits as they are still required for
pointer updating.

TBR=hpayer@chromium.org
NOTRY=true

Bug: chromium:651354
Change-Id: Idc85f08a3b6525dd1ca932585f5e696a22b12808
Reviewed-on: https://chromium-review.googlesource.com/522609
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45690}
[modify] https://crrev.com/70f428bd65d14f2204e4452e61c8a9725b60bde6/src/heap/mark-compact.cc

Project Member

Comment 71 by bugdroid1@chromium.org, Jun 21 2017

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

commit ee35abf12598c8f2a6fdc01b393544088dfd9a78
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed Jun 21 12:20:14 2017

[heap] Build proper iterator for iterating live objects

- Iterator advancing is kept mainly unchanged.
- The iterator stores the size of the object which is to be used by the
  caller in follow ups. This way we might be able to avoid further out
  of line loads.
- The iteartor follows the regular std conventions allowing range based
  loops.

Bug: chromium:651354
Change-Id: I8928224a62d3a48a48145a2d00279a28608bc634
Reviewed-on: https://chromium-review.googlesource.com/543335
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46085}
[modify] https://crrev.com/ee35abf12598c8f2a6fdc01b393544088dfd9a78/src/heap/mark-compact-inl.h
[modify] https://crrev.com/ee35abf12598c8f2a6fdc01b393544088dfd9a78/src/heap/mark-compact.cc
[modify] https://crrev.com/ee35abf12598c8f2a6fdc01b393544088dfd9a78/src/heap/mark-compact.h
[modify] https://crrev.com/ee35abf12598c8f2a6fdc01b393544088dfd9a78/test/cctest/heap/test-mark-compact.cc

Project Member

Comment 72 by bugdroid1@chromium.org, Jun 21 2017

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

commit d03768b008e36cf12f2c1940c03db3231648dd11
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed Jun 21 13:30:40 2017

[heap] Avoid repeated loads of object size

The iterator already provides the size.

Bug: chromium:651354
Change-Id: I683bfe5c82441bf39c21b18daa58eba91b798c64
Reviewed-on: https://chromium-review.googlesource.com/543495
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46092}
[modify] https://crrev.com/d03768b008e36cf12f2c1940c03db3231648dd11/src/heap/heap-inl.h
[modify] https://crrev.com/d03768b008e36cf12f2c1940c03db3231648dd11/src/heap/heap.h
[modify] https://crrev.com/d03768b008e36cf12f2c1940c03db3231648dd11/src/heap/mark-compact.cc
[modify] https://crrev.com/d03768b008e36cf12f2c1940c03db3231648dd11/src/heap/scavenger.cc

Project Member

Comment 73 by bugdroid1@chromium.org, Jun 22 2017

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

commit baf954759bd36926bc2136a505d302a5d0fddd0a
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Jun 22 09:05:30 2017

[heap] Implement workstealing bag based on segments

Bug: chromium:651354
Change-Id: I8aa122f48986f494146d4e896b254846de7ce295
Reviewed-on: https://chromium-review.googlesource.com/543500
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46119}
[modify] https://crrev.com/baf954759bd36926bc2136a505d302a5d0fddd0a/BUILD.gn
[modify] https://crrev.com/baf954759bd36926bc2136a505d302a5d0fddd0a/src/heap/mark-compact.cc
[modify] https://crrev.com/baf954759bd36926bc2136a505d302a5d0fddd0a/src/heap/mark-compact.h
[add] https://crrev.com/baf954759bd36926bc2136a505d302a5d0fddd0a/src/heap/workstealing-bag.h
[delete] https://crrev.com/c4852ea94c9b30bdca647cb53650931894233fe9/src/heap/workstealing-marking-deque.h
[modify] https://crrev.com/baf954759bd36926bc2136a505d302a5d0fddd0a/src/v8.gyp
[modify] https://crrev.com/baf954759bd36926bc2136a505d302a5d0fddd0a/test/unittests/BUILD.gn
[add] https://crrev.com/baf954759bd36926bc2136a505d302a5d0fddd0a/test/unittests/heap/workstealing-bag-unittest.cc
[delete] https://crrev.com/c4852ea94c9b30bdca647cb53650931894233fe9/test/unittests/heap/workstealing-marking-deque-unittest.cc
[modify] https://crrev.com/baf954759bd36926bc2136a505d302a5d0fddd0a/test/unittests/unittests.gyp

Project Member

Comment 74 by bugdroid1@chromium.org, Jun 23 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/14d85ce89c4d2d9d92f2380c0407b41fa0cd178c

commit 14d85ce89c4d2d9d92f2380c0407b41fa0cd178c
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Fri Jun 23 08:57:09 2017

[heap] Switch evacuation to ItemParallelJob

Remove PageParallelJob as it is completely replaced now. It served us
well.

Bug: chromium:651354
Change-Id: I620fa7bb0dcaf7cd3710492913c501bcb162c781
Reviewed-on: https://chromium-review.googlesource.com/544950
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46159}
[modify] https://crrev.com/14d85ce89c4d2d9d92f2380c0407b41fa0cd178c/BUILD.gn
[modify] https://crrev.com/14d85ce89c4d2d9d92f2380c0407b41fa0cd178c/src/heap/item-parallel-job.h
[modify] https://crrev.com/14d85ce89c4d2d9d92f2380c0407b41fa0cd178c/src/heap/mark-compact.cc
[modify] https://crrev.com/14d85ce89c4d2d9d92f2380c0407b41fa0cd178c/src/heap/mark-compact.h
[delete] https://crrev.com/07b1113252bd487aa20d6459e03d125edf6d5e47/src/heap/page-parallel-job.h
[modify] https://crrev.com/14d85ce89c4d2d9d92f2380c0407b41fa0cd178c/src/v8.gyp

Project Member

Comment 75 by bugdroid1@chromium.org, Jun 23 2017

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

commit b45f20665173fb89310f6b97c53d4650eecb7d7a
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Fri Jun 23 09:35:29 2017

[heap] MinorMC: Reuse NewSpaceVisitor for marking

Completely shares first-level visitation with the Scavenger.

Remove marking recursively on the way as we cannot reliable check for
stack overflow on background tasks.

Bug: chromium:651354
Change-Id: I6da1dc787cdfb4232ea4b6cb8e72e0f736cabf10
Reviewed-on: https://chromium-review.googlesource.com/544967
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46162}
[modify] https://crrev.com/b45f20665173fb89310f6b97c53d4650eecb7d7a/src/heap/mark-compact.cc

Project Member

Comment 76 by bugdroid1@chromium.org, Jun 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/3c04ee6d4e8bdfb08f5fc6c213bb8226fc1cc40c

commit 3c04ee6d4e8bdfb08f5fc6c213bb8226fc1cc40c
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue Jun 27 11:17:25 2017

[heap] Make aborting compaction a fatal

Last attempt failed because of too agressive growing and no proper GC
scheduling.

Also refactor live object iteration on the way to avoid a branch when we
know that we will succeed.

Bug: chromium:651354
Change-Id: I8f52cbc79ac293989fb7c29c492d4ae4afe5ebe4
Reviewed-on: https://chromium-review.googlesource.com/544829
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46245}
[modify] https://crrev.com/3c04ee6d4e8bdfb08f5fc6c213bb8226fc1cc40c/src/flag-definitions.h
[modify] https://crrev.com/3c04ee6d4e8bdfb08f5fc6c213bb8226fc1cc40c/src/heap/mark-compact.cc
[modify] https://crrev.com/3c04ee6d4e8bdfb08f5fc6c213bb8226fc1cc40c/src/heap/mark-compact.h
[modify] https://crrev.com/3c04ee6d4e8bdfb08f5fc6c213bb8226fc1cc40c/test/cctest/heap/test-compaction.cc
[modify] https://crrev.com/3c04ee6d4e8bdfb08f5fc6c213bb8226fc1cc40c/test/cctest/heap/test-heap.cc
[modify] https://crrev.com/3c04ee6d4e8bdfb08f5fc6c213bb8226fc1cc40c/test/cctest/test-api.cc

Project Member

Comment 77 by bugdroid1@chromium.org, Jun 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/7dea0f7b38754c97d94f4013fcb6544be6b57216

commit 7dea0f7b38754c97d94f4013fcb6544be6b57216
Author: Michael Achenbach <machenbach@chromium.org>
Date: Tue Jun 27 11:40:28 2017

Revert "[heap] Make aborting compaction a fatal"

This reverts commit 3c04ee6d4e8bdfb08f5fc6c213bb8226fc1cc40c.

Reason for revert: Speculative revert for OOMs in:
https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20shared/builds/18563

Original change's description:
> [heap] Make aborting compaction a fatal
> 
> Last attempt failed because of too agressive growing and no proper GC
> scheduling.
> 
> Also refactor live object iteration on the way to avoid a branch when we
> know that we will succeed.
> 
> Bug: chromium:651354
> Change-Id: I8f52cbc79ac293989fb7c29c492d4ae4afe5ebe4
> Reviewed-on: https://chromium-review.googlesource.com/544829
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#46245}

TBR=ulan@chromium.org,mlippautz@chromium.org

Change-Id: Ifb9fd0c873c4ec6d4bd895f2978849cc2a223a05
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:651354
Reviewed-on: https://chromium-review.googlesource.com/549324
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46247}
[modify] https://crrev.com/7dea0f7b38754c97d94f4013fcb6544be6b57216/src/flag-definitions.h
[modify] https://crrev.com/7dea0f7b38754c97d94f4013fcb6544be6b57216/src/heap/mark-compact.cc
[modify] https://crrev.com/7dea0f7b38754c97d94f4013fcb6544be6b57216/src/heap/mark-compact.h
[modify] https://crrev.com/7dea0f7b38754c97d94f4013fcb6544be6b57216/test/cctest/heap/test-compaction.cc
[modify] https://crrev.com/7dea0f7b38754c97d94f4013fcb6544be6b57216/test/cctest/heap/test-heap.cc
[modify] https://crrev.com/7dea0f7b38754c97d94f4013fcb6544be6b57216/test/cctest/test-api.cc

Project Member

Comment 78 by bugdroid1@chromium.org, Jun 27 2017

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

commit ab028038dbaa1a01b590f3ce46243c01c7203cd5
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue Jun 27 14:21:04 2017

[heap] Refactor live object visitation

- Restructure the methods that are not allowed to fail to avoid a branch.
- Undo compaction changes for the reland as they require further investigation

This reverts commit 7dea0f7b38754c97d94f4013fcb6544be6b57216.

Bug: chromium:651354
Change-Id: I93e8601bcdec534f41f8e27fd83848f8ef0f1244
Reviewed-on: https://chromium-review.googlesource.com/549462
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46259}
[modify] https://crrev.com/ab028038dbaa1a01b590f3ce46243c01c7203cd5/src/heap/mark-compact.cc
[modify] https://crrev.com/ab028038dbaa1a01b590f3ce46243c01c7203cd5/src/heap/mark-compact.h

Project Member

Comment 79 by bugdroid1@chromium.org, Jun 28 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/4260f6055fdf956fb3c0c09ff7bc571e25c018d8

commit 4260f6055fdf956fb3c0c09ff7bc571e25c018d8
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed Jun 28 07:07:08 2017

[heap] Move ArrayBufferTracker updating to pointers updating

Bug: chromium:651354
Change-Id: I2c318dd3cb0885fd8186d4c13a91840498a217b2
Reviewed-on: https://chromium-review.googlesource.com/550097
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46269}
[modify] https://crrev.com/4260f6055fdf956fb3c0c09ff7bc571e25c018d8/src/heap/mark-compact.cc
[modify] https://crrev.com/4260f6055fdf956fb3c0c09ff7bc571e25c018d8/src/heap/mark-compact.h

Project Member

Comment 80 by bugdroid1@chromium.org, Jun 28 2017

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

commit ecd8d2c2336a0a83be4e4391d4ee6bbf03375bf0
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed Jun 28 09:26:08 2017

Revert "[heap] Move ArrayBufferTracker updating to pointers updating"

This reverts commit 4260f6055fdf956fb3c0c09ff7bc571e25c018d8.

Reason for revert: Speculative revert for https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20ASAN

Original change's description:
> [heap] Move ArrayBufferTracker updating to pointers updating
> 
> Bug: chromium:651354
> Change-Id: I2c318dd3cb0885fd8186d4c13a91840498a217b2
> Reviewed-on: https://chromium-review.googlesource.com/550097
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#46269}

TBR=ulan@chromium.org,mlippautz@chromium.org

Change-Id: Ie5b828f909e140bf5b4b17353999d598e6367622
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:651354
Reviewed-on: https://chromium-review.googlesource.com/552177
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46274}
[modify] https://crrev.com/ecd8d2c2336a0a83be4e4391d4ee6bbf03375bf0/src/heap/mark-compact.cc
[modify] https://crrev.com/ecd8d2c2336a0a83be4e4391d4ee6bbf03375bf0/src/heap/mark-compact.h

Project Member

Comment 81 by bugdroid1@chromium.org, Jun 28 2017

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

commit bd808e7a3b9e65cb5925d87f2926ff4c34ff0827
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed Jun 28 14:46:37 2017

Reland "[heap] Move ArrayBufferTracker updating to pointers updating"

This reverts commit ecd8d2c2336a0a83be4e4391d4ee6bbf03375bf0.

Bug: chromium:651354
Change-Id: I744ef9104cf9d56b8ce6d814f5abda152b0743b0
Reviewed-on: https://chromium-review.googlesource.com/552147
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46291}
[modify] https://crrev.com/bd808e7a3b9e65cb5925d87f2926ff4c34ff0827/src/heap/array-buffer-tracker.cc
[modify] https://crrev.com/bd808e7a3b9e65cb5925d87f2926ff4c34ff0827/src/heap/mark-compact.cc
[modify] https://crrev.com/bd808e7a3b9e65cb5925d87f2926ff4c34ff0827/src/heap/mark-compact.h

Project Member

Comment 82 by bugdroid1@chromium.org, Jun 29 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/5157325bae7e6dda279f453a8f4d741c54b746ce

commit 5157325bae7e6dda279f453a8f4d741c54b746ce
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Jun 29 13:10:32 2017

[heap] Fixes for Bitmap

Bug: chromium:651354
Change-Id: Ib384ca2d386421a0a466ef318b278f8fc677cdb2
Reviewed-on: https://chromium-review.googlesource.com/555172
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46320}
[modify] https://crrev.com/5157325bae7e6dda279f453a8f4d741c54b746ce/src/heap/mark-compact.h
[modify] https://crrev.com/5157325bae7e6dda279f453a8f4d741c54b746ce/src/heap/marking.h

Blockedon: 738368
Blockedon: 788113
Project Member

Comment 85 by bugdroid1@chromium.org, Nov 30 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/776721396a70400816ac614346660040a8228b01

commit 776721396a70400816ac614346660040a8228b01
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Nov 30 12:37:19 2017

[heap] Minor MC: Fix task computation

No-try: true
Bug: chromium:651354,  chromium:788113 
Change-Id: I8955b322b826c0a59f85c32bb2c1ec8c9d4e0761
Reviewed-on: https://chromium-review.googlesource.com/800330
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#49748}
[modify] https://crrev.com/776721396a70400816ac614346660040a8228b01/src/heap/mark-compact.cc

Project Member

Comment 86 by bugdroid1@chromium.org, Nov 30 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/9ac877fa77a07e1918ed84c5d51af6b6f10626b4

commit 9ac877fa77a07e1918ed84c5d51af6b6f10626b4
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Nov 30 13:03:09 2017

[heap] Minor MC: Free and prefree empty remembered set buckets

No-try: true
Bug: chromium:651354,  chromium:788113 
Change-Id: Iff2051751c4688c307e8f23ddd08de203974e842
Reviewed-on: https://chromium-review.googlesource.com/800272
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#49751}
[modify] https://crrev.com/9ac877fa77a07e1918ed84c5d51af6b6f10626b4/src/heap/mark-compact.cc

Project Member

Comment 87 by bugdroid1@chromium.org, Nov 30 2017

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

commit 6b29f1cf281336f5ea62da2f2f5438ca215576f3
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Nov 30 13:13:29 2017

[heap] Minor MC: Support ThinString

No-try: true
Bug: chromium:651354,  chromium:788113 
Change-Id: I53cc2f04974671982371d1c26c71bd559450a5aa
Reviewed-on: https://chromium-review.googlesource.com/800176
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#49752}
[modify] https://crrev.com/6b29f1cf281336f5ea62da2f2f5438ca215576f3/src/heap/mark-compact.cc

Project Member

Comment 88 by bugdroid1@chromium.org, Nov 30 2017

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

commit b4d2f3eb991fd11126ac840c5db16e8a3789546c
Author: Jakob Gruber <jgruber@chromium.org>
Date: Thu Nov 30 13:42:24 2017

Revert "[heap] Minor MC: Support ThinString"

This reverts commit 6b29f1cf281336f5ea62da2f2f5438ca215576f3.

Reason for revert: https://build.chromium.org/p/client.v8/builders/V8%20Linux64/builds/21671

Original change's description:
> [heap] Minor MC: Support ThinString
> 
> No-try: true
> Bug: chromium:651354,  chromium:788113 
> Change-Id: I53cc2f04974671982371d1c26c71bd559450a5aa
> Reviewed-on: https://chromium-review.googlesource.com/800176
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Reviewed-by: Hannes Payer <hpayer@chromium.org>
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#49752}

TBR=ulan@chromium.org,hpayer@chromium.org,mlippautz@chromium.org

Change-Id: I6268c5c090377cb97a3e8cdf1bb4b19b3c6876da
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:651354,  chromium:788113 
Reviewed-on: https://chromium-review.googlesource.com/800610
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#49754}
[modify] https://crrev.com/b4d2f3eb991fd11126ac840c5db16e8a3789546c/src/heap/mark-compact.cc

Project Member

Comment 89 by bugdroid1@chromium.org, Nov 30 2017

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

commit bbd9e4a76b0f653607912fa448476d5626b45af0
Author: Michael Achenbach <machenbach@chromium.org>
Date: Thu Nov 30 13:43:29 2017

Revert "[heap] Minor MC: Support ThinString"

This reverts commit 6b29f1cf281336f5ea62da2f2f5438ca215576f3.

Reason for revert: Breaks many bots. Please no notry:
https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20verify%20csa/builds/4512

Original change's description:
> [heap] Minor MC: Support ThinString
> 
> No-try: true
> Bug: chromium:651354,  chromium:788113 
> Change-Id: I53cc2f04974671982371d1c26c71bd559450a5aa
> Reviewed-on: https://chromium-review.googlesource.com/800176
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Reviewed-by: Hannes Payer <hpayer@chromium.org>
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#49752}

TBR=ulan@chromium.org,hpayer@chromium.org,mlippautz@chromium.org

Change-Id: I0a5f47f144ae9c8d2ba279243124fa10ec99e165
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:651354,  chromium:788113 
Reviewed-on: https://chromium-review.googlesource.com/800491
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#49755}

Project Member

Comment 90 by bugdroid1@chromium.org, Nov 30 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/9fbbe2a4743c11c2df7aca3425ed419aa4fb0dcc

commit 9fbbe2a4743c11c2df7aca3425ed419aa4fb0dcc
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Thu Nov 30 16:40:59 2017

[heap] Full MC/Minor MC: Add support for ThinString

This reverts commit b4d2f3eb991fd11126ac840c5db16e8a3789546c.

Bug: chromium:651354,  chromium:788113 
Change-Id: I04b7541e7eb69f737d45e90bbfec591cf8f8190f
Reviewed-on: https://chromium-review.googlesource.com/800552
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#49765}
[modify] https://crrev.com/9fbbe2a4743c11c2df7aca3425ed419aa4fb0dcc/src/heap/mark-compact.cc
[modify] https://crrev.com/9fbbe2a4743c11c2df7aca3425ed419aa4fb0dcc/src/objects/string-inl.h
[modify] https://crrev.com/9fbbe2a4743c11c2df7aca3425ed419aa4fb0dcc/src/objects/string.h

Project Member

Comment 91 by bugdroid1@chromium.org, Dec 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/3c778f559cab3465bd603c5835004a08d88f7932

commit 3c778f559cab3465bd603c5835004a08d88f7932
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed Dec 06 09:35:18 2017

[heap] Minor MC: Allow modifying code

Similar to the Scavenger, the Minor MC updates typed pointers into the
young generation and thus requires priviliges to write to code space.

Bug: chromium:651354
Change-Id: If5ce600f651ccb04b6ac3d82e6c2e311bfd7dc4d
Reviewed-on: https://chromium-review.googlesource.com/809013
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#49884}
[modify] https://crrev.com/3c778f559cab3465bd603c5835004a08d88f7932/src/heap/heap.cc

Comment 92 by gab@chromium.org, Jan 25 2018

Blockedon: 805932

Comment 93 by gab@chromium.org, Jan 26 2018

Blockedon: 806237

Comment 94 by gab@chromium.org, Jan 31 2018

Blockedon: 807606

Comment 95 by gab@chromium.org, Feb 1 2018

Blockedon: 808028
Project Member

Comment 96 by bugdroid1@chromium.org, Feb 6 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/3d11bf77115d95892e2548502f08db1ac38b6318

commit 3d11bf77115d95892e2548502f08db1ac38b6318
Author: Gabriel Charette <gab@chromium.org>
Date: Tue Feb 06 15:42:17 2018

Highlight individual work items in tracing of parallel GC.

This merely re-uses the same ScopeId as the task. Tracing shows these
as a nested layer with the same name. This is not the cleanest way to
do this but it makes the trace clearer for a minimal diff.

R=mlippautz@chromium.org

Bug: chromium:651354
Change-Id: Ib30ec7d04a30657a63a49aba9698cacd9af950d3
Reviewed-on: https://chromium-review.googlesource.com/904164
Commit-Queue: Gabriel Charette <gab@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51120}
[modify] https://crrev.com/3d11bf77115d95892e2548502f08db1ac38b6318/src/heap/heap.cc
[modify] https://crrev.com/3d11bf77115d95892e2548502f08db1ac38b6318/src/heap/mark-compact.cc

Project Member

Comment 97 by bugdroid1@chromium.org, Feb 6 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/7d58b3c46c44601afbc61681f2c43f7a48d5f7c9

commit 7d58b3c46c44601afbc61681f2c43f7a48d5f7c9
Author: Gabriel Charette <gab@chromium.org>
Date: Tue Feb 06 21:55:49 2018

Isolate ItemParallelJob implementation in CC file.

This CL is a pure code move based on top of
https://chromium-review.googlesource.com/c/v8/v8/+/899365

Having it all in the header was becoming more and more tedious:
requiring large rebuilds for impl changes and
requiring exporting unrelated symbols merely so that unittests
could link
@ https://chromium-review.googlesource.com/c/v8/v8/+/899365
and https://chromium-review.googlesource.com/c/v8/v8/+/904523/2

R=mlippautz@chromium.org

Bug: chromium:651354
Change-Id: Ib34043d061dd3b1221cd06799eddc888090fe1c1
Reviewed-on: https://chromium-review.googlesource.com/904167
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Gabriel Charette <gab@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51132}
[modify] https://crrev.com/7d58b3c46c44601afbc61681f2c43f7a48d5f7c9/BUILD.gn
[modify] https://crrev.com/7d58b3c46c44601afbc61681f2c43f7a48d5f7c9/gypfiles/v8.gyp
[modify] https://crrev.com/7d58b3c46c44601afbc61681f2c43f7a48d5f7c9/src/counters.h
[add] https://crrev.com/7d58b3c46c44601afbc61681f2c43f7a48d5f7c9/src/heap/item-parallel-job.cc
[modify] https://crrev.com/7d58b3c46c44601afbc61681f2c43f7a48d5f7c9/src/heap/item-parallel-job.h

Project Member

Comment 98 by bugdroid1@chromium.org, Feb 6 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/384a5223b710bc23627885e2540c7efd0438c2fa

commit 384a5223b710bc23627885e2540c7efd0438c2fa
Author: Gabriel Charette <gab@chromium.org>
Date: Tue Feb 06 22:02:19 2018

[v8::ItemParallelJob] Add an instant trace event to log num_tasks/num_items for ease of trace diagnosis.

R=mlippautz@chromium.org

Bug: chromium:651354
Change-Id: I5762813f6bd7b3c549f22ee8e43c59ca9edbe915
Reviewed-on: https://chromium-review.googlesource.com/904523
Commit-Queue: Gabriel Charette <gab@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51133}
[modify] https://crrev.com/384a5223b710bc23627885e2540c7efd0438c2fa/src/heap/item-parallel-job.cc

Comment 99 by gab@chromium.org, Feb 12 2018

Blockedon: 811035

Comment 100 by gab@chromium.org, Feb 20 2018

Blockedon: 813824
Project Member

Comment 101 by bugdroid1@chromium.org, Feb 25 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/903144f3c17a26b91392a12e7dcd5251a7d7c0c0

commit 903144f3c17a26b91392a12e7dcd5251a7d7c0c0
Author: Gabriel Charette <gab@chromium.org>
Date: Sun Feb 25 08:29:28 2018

Add clear trace events per ItemParallelJob::Items instead of reusing their top-level category.

This is a follow-up to https://chromium-review.googlesource.com/904164
now that I've realized raw TRACE_EVENTs work in v8 (initially thought
had to go through heap()->tracer()).

After adding events to EvacuatePage(), the subitem event for evacuation tasks
became redundant. Since this results in a better output this CL applies
this approach to all paralell work items.

Not using TRACE_BACKGROUND_GC also avoids polluting logs with subitems
when using v8's tracing flags.

R=mlippautz@chromium.org

Bug: chromium:651354
Change-Id: I62efbde69da2a0a9bd255e34093d64924e339974
Reviewed-on: https://chromium-review.googlesource.com/934263
Commit-Queue: Gabriel Charette <gab@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51544}
[modify] https://crrev.com/903144f3c17a26b91392a12e7dcd5251a7d7c0c0/src/heap/heap.cc
[modify] https://crrev.com/903144f3c17a26b91392a12e7dcd5251a7d7c0c0/src/heap/mark-compact.cc
[modify] https://crrev.com/903144f3c17a26b91392a12e7dcd5251a7d7c0c0/src/heap/scavenger.cc

Comment 102 by gab@chromium.org, Feb 28 2018

Blockedon: 817330
Project Member

Comment 103 by bugdroid1@chromium.org, May 11 2018

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

commit 0bf9c60c095fd7b5a3946874ea4133aac7115be9
Author: Ulan Degenbaev <ulan@chromium.org>
Date: Fri May 11 13:06:25 2018

[heap] Unprotect code pages on demand in MinorMC

This reduces average pause of MinorMC in Richards benchmark from 0.32ms
to 0.25ms:

baseline pause
  len: 22
  min: 0.3
  max: 0.6
  avg: 0.322727272727
  [0,5[: 22

pause
  len: 22
  min: 0.2
  max: 0.7
  avg: 0.254545454545
  [0,5[: 22

Bug: chromium:651354
Change-Id: I701ca800d7c6986534d1de2e3051476e91a88d7d
Reviewed-on: https://chromium-review.googlesource.com/1055507
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53125}
[modify] https://crrev.com/0bf9c60c095fd7b5a3946874ea4133aac7115be9/src/heap/heap.cc
[modify] https://crrev.com/0bf9c60c095fd7b5a3946874ea4133aac7115be9/src/heap/mark-compact.cc

Project Member

Comment 104 by bugdroid1@chromium.org, May 11 2018

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

commit be2f237d856ad43c3a8fe0541bf3c65e127472bb
Author: Ulan Degenbaev <ulan@chromium.org>
Date: Fri May 11 13:43:56 2018

Revert "[heap] Unprotect code pages on demand in MinorMC"

This reverts commit 0bf9c60c095fd7b5a3946874ea4133aac7115be9.

Reason for revert: breaks minor_mc bot

Original change's description:
> [heap] Unprotect code pages on demand in MinorMC
> 
> This reduces average pause of MinorMC in Richards benchmark from 0.32ms
> to 0.25ms:
> 
> baseline pause
>   len: 22
>   min: 0.3
>   max: 0.6
>   avg: 0.322727272727
>   [0,5[: 22
> 
> pause
>   len: 22
>   min: 0.2
>   max: 0.7
>   avg: 0.254545454545
>   [0,5[: 22
> 
> Bug: chromium:651354
> Change-Id: I701ca800d7c6986534d1de2e3051476e91a88d7d
> Reviewed-on: https://chromium-review.googlesource.com/1055507
> Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
> Reviewed-by: Hannes Payer <hpayer@chromium.org>
> Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53125}

TBR=ulan@chromium.org,hpayer@chromium.org,mlippautz@chromium.org

Change-Id: Ib227e37fa60d608f94c3111a9b431baf0f488790
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:651354
Reviewed-on: https://chromium-review.googlesource.com/1053970
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53127}
[modify] https://crrev.com/be2f237d856ad43c3a8fe0541bf3c65e127472bb/src/heap/heap.cc
[modify] https://crrev.com/be2f237d856ad43c3a8fe0541bf3c65e127472bb/src/heap/mark-compact.cc

Project Member

Comment 105 by bugdroid1@chromium.org, May 11 2018

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

commit dc1906a71dbd9df67031f29eff01875a8e6391e5
Author: Ulan Degenbaev <ulan@chromium.org>
Date: Fri May 11 14:12:15 2018

[heap] Optimize root visitor of MinorMC

The root visitor now collects marked roots in the marking worklist and
filters out objects that are not in the new space.

This reduces average marking time in MinorMC in Richards from 0.08ms
to 0.04ms:

baseline mark:
  len: 22
  min: 0.07
  max: 0.18
  avg: 0.0809090909091
  [0,5[: 22

mark
  len: 22
  min: 0.03
  max: 0.13
  avg: 0.0409090909091
  [0,5[: 22

Bug: chromium:651354
Change-Id: I979e2f5ba331f88029b69bab23978f7fcadb7024
Reviewed-on: https://chromium-review.googlesource.com/1055490
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53128}
[modify] https://crrev.com/dc1906a71dbd9df67031f29eff01875a8e6391e5/src/heap/mark-compact-inl.h
[modify] https://crrev.com/dc1906a71dbd9df67031f29eff01875a8e6391e5/src/heap/mark-compact.cc
[modify] https://crrev.com/dc1906a71dbd9df67031f29eff01875a8e6391e5/src/heap/mark-compact.h

Project Member

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

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/97ddfc3e3d486424c05ab4026741f132e55555d1

commit 97ddfc3e3d486424c05ab4026741f132e55555d1
Author: Ulan Degenbaev <ulan@chromium.org>
Date: Fri May 11 14:48:56 2018

Reland "[heap] Unprotect code pages on demand in MinorMC"

This reverts commit be2f237d856ad43c3a8fe0541bf3c65e127472bb.

Original change's description:
> [heap] Unprotect code pages on demand in MinorMC
>
> This reduces average pause of MinorMC in Richards benchmark from 0.32ms
> to 0.25ms:
>
> baseline pause
>   len: 22
>   min: 0.3
>   max: 0.6
>   avg: 0.322727272727
>   [0,5[: 22
>
> pause
>   len: 22
>   min: 0.2
>   max: 0.7
>   avg: 0.254545454545
>   [0,5[: 22
>
> Bug: chromium:651354

Change-Id: I9d70037dda612528368fb1ba330dc6f6510a14a6
Reviewed-on: https://chromium-review.googlesource.com/1055450
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53129}
[modify] https://crrev.com/97ddfc3e3d486424c05ab4026741f132e55555d1/src/heap/heap.cc
[modify] https://crrev.com/97ddfc3e3d486424c05ab4026741f132e55555d1/src/heap/mark-compact.cc

Project Member

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

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

commit b595b89c3675a0a19b9ad32b883644a8e33cae9c
Author: Sergiy Byelozyorov <sergiyb@chromium.org>
Date: Wed May 16 13:52:45 2018

[tools] Add minor_mc test variant to the V8 CQ

R=machenbach@chromium.org

Bug: chromium:651354
Change-Id: I9ce5c6dc6a155ff9a70713cbdbf2d4037ad47f24
Reviewed-on: https://chromium-review.googlesource.com/1053773
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53214}
[modify] https://crrev.com/b595b89c3675a0a19b9ad32b883644a8e33cae9c/infra/testing/builders.pyl

Showing comments 8 - 107 of 107 Older

Sign in to add a comment