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

Issue 693413 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Aug 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Feature



Sign in to add a comment

Fast promotion mode for young generation

Project Member Reported by mlippautz@chromium.org, Feb 17 2017

Issue description

Tracking bug for fast promotion for young generation where all pages are just moved to the old generation in case of high survival rates.
 
Project Member

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

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

commit a8e3925e7ab630cd9c336a737994e21343843303
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Fri Feb 17 11:09:47 2017

[heap] GC-based fast promotion mode

A fast promotion mode that works solely on GC heuristics without
requiring compiler or other profiler support by implementing zero-copy 
evacuation for new space.

- Once a threshold of survived bytes in the Scavenger is reached the
  mode is activated.
- In fast promotion mode all pages are moved to old space instead of
  performing a Scavenge.
- The inevitable upcoming full MC determines whether the decision
  whether the mode should stay on or be turned off based on the young
  generation survival rate.

BUG= chromium:693413 

Change-Id: Ifdf296092a9bac609f9dcdfb47a24046f3093745
Reviewed-on: https://chromium-review.googlesource.com/442560
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@{#43276}
[modify] https://crrev.com/a8e3925e7ab630cd9c336a737994e21343843303/src/flag-definitions.h
[modify] https://crrev.com/a8e3925e7ab630cd9c336a737994e21343843303/src/heap/gc-tracer.cc
[modify] https://crrev.com/a8e3925e7ab630cd9c336a737994e21343843303/src/heap/gc-tracer.h
[modify] https://crrev.com/a8e3925e7ab630cd9c336a737994e21343843303/src/heap/heap-inl.h
[modify] https://crrev.com/a8e3925e7ab630cd9c336a737994e21343843303/src/heap/heap.cc
[modify] https://crrev.com/a8e3925e7ab630cd9c336a737994e21343843303/src/heap/heap.h
[modify] https://crrev.com/a8e3925e7ab630cd9c336a737994e21343843303/src/heap/mark-compact.cc
[modify] https://crrev.com/a8e3925e7ab630cd9c336a737994e21343843303/src/heap/mark-compact.h
[modify] https://crrev.com/a8e3925e7ab630cd9c336a737994e21343843303/src/heap/spaces-inl.h

Project Member

Comment 2 by bugdroid1@chromium.org, Feb 20 2017

Project Member

Comment 3 by bugdroid1@chromium.org, Feb 20 2017

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

commit 2c7f32e21cd82f26b22740a6a74f6c05aea78d08
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Mon Feb 20 12:56:28 2017

[heap] Add prefix for young generation handling use counter

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

Change-Id: Ie8e6a5e20e904b81228b67f33c976569e305872c
Reviewed-on: https://chromium-review.googlesource.com/445157
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43319}
[modify] https://crrev.com/2c7f32e21cd82f26b22740a6a74f6c05aea78d08/src/counters.h

Project Member

Comment 4 by bugdroid1@chromium.org, Feb 20 2017

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

commit 3cf5edae90daec401dce251c07150a5b36b05f75
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Mon Feb 20 13:15:36 2017

[heap] Fix fast promotion mode computation

Bailout didn't happen if we decided to shrink newspace at the end of a
Mark-Compact GC.

BUG= chromium:693413 

Change-Id: Ia4acf565c836b188655773e74083f9151e4ab30b
Reviewed-on: https://chromium-review.googlesource.com/445176
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43320}
[modify] https://crrev.com/3cf5edae90daec401dce251c07150a5b36b05f75/src/heap/heap.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Feb 20 2017

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

commit 33766a8c71fcb49ce0100246e7ae6217fba22314
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Mon Feb 20 16:50:48 2017

Revert "[heap] Add prefix for young generation handling use counter"

This reverts commit 2c7f32e21cd82f26b22740a6a74f6c05aea78d08.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> [heap] Add prefix for young generation handling use counter
> 
> R=​ulan@chromium.org
> BUG= chromium:693413 
> 
> Change-Id: Ie8e6a5e20e904b81228b67f33c976569e305872c
> Reviewed-on: https://chromium-review.googlesource.com/445157
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#43319}

TBR=ulan@chromium.org,mlippautz@chromium.org,v8-reviews@googlegroups.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= chromium:693413 

Change-Id: If5d545d98f61931301ccf4166aa2acab82bdf4ca
Reviewed-on: https://chromium-review.googlesource.com/445178
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43330}
[modify] https://crrev.com/33766a8c71fcb49ce0100246e7ae6217fba22314/src/counters.h

Project Member

Comment 6 by bugdroid1@chromium.org, Feb 20 2017

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

commit 9a407a4383f7c7509bf7cca9990f8dedd3cf691b
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Mon Feb 20 16:53:01 2017

Revert "[heap] Add histogram counter for young generation handling"

This reverts commit 17ef406da11c515e567d1c13eafde60f45cd1139.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> [heap] Add histogram counter for young generation handling
> 
> BUG= chromium:693413 
> 
> Change-Id: I6c6bc62e7f2c702be2462e4b0c3704fabf44f9d2
> Reviewed-on: https://chromium-review.googlesource.com/445156
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#43316}

TBR=ulan@chromium.org,mlippautz@chromium.org,hpayer@chromium.org,v8-reviews@googlegroups.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= chromium:693413 

Change-Id: I38b293d6594278370ec0c5cb20234811b48086f6
Reviewed-on: https://chromium-review.googlesource.com/445179
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43331}
[modify] https://crrev.com/9a407a4383f7c7509bf7cca9990f8dedd3cf691b/src/counters.h
[modify] https://crrev.com/9a407a4383f7c7509bf7cca9990f8dedd3cf691b/src/heap/gc-tracer.cc
[modify] https://crrev.com/9a407a4383f7c7509bf7cca9990f8dedd3cf691b/src/heap/gc-tracer.h
[modify] https://crrev.com/9a407a4383f7c7509bf7cca9990f8dedd3cf691b/src/heap/heap.cc
[modify] https://crrev.com/9a407a4383f7c7509bf7cca9990f8dedd3cf691b/src/heap/heap.h

Project Member

Comment 7 by bugdroid1@chromium.org, Feb 20 2017

Project Member

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

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

commit 5738535ee0e3480534e49b8e0ba9aac4822803c0
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue Feb 21 15:04:47 2017

[interpreter/fcg] Remove support for optimizing away memento creation

FCG implemented an optimziation which could avoid emitting a memento if the
memento was only needed for transitioning. This optimization is currently
turned off as we always run with pretenuring. Since this optimization will not
be ported to Ignition for now, we just remove the support from FCG.

Disabling allocation site pretenuring will then not make FCG and Iginition
diverge in their behavior.

BUG= chromium:693413 

Change-Id: I69aea73426fc69d48e1fe6ed13caaf28f9cfb32f
Reviewed-on: https://chromium-review.googlesource.com/445258
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43345}
[modify] https://crrev.com/5738535ee0e3480534e49b8e0ba9aac4822803c0/src/full-codegen/arm/full-codegen-arm.cc
[modify] https://crrev.com/5738535ee0e3480534e49b8e0ba9aac4822803c0/src/full-codegen/arm64/full-codegen-arm64.cc
[modify] https://crrev.com/5738535ee0e3480534e49b8e0ba9aac4822803c0/src/full-codegen/ia32/full-codegen-ia32.cc
[modify] https://crrev.com/5738535ee0e3480534e49b8e0ba9aac4822803c0/src/full-codegen/mips/full-codegen-mips.cc
[modify] https://crrev.com/5738535ee0e3480534e49b8e0ba9aac4822803c0/src/full-codegen/mips64/full-codegen-mips64.cc
[modify] https://crrev.com/5738535ee0e3480534e49b8e0ba9aac4822803c0/src/full-codegen/ppc/full-codegen-ppc.cc
[modify] https://crrev.com/5738535ee0e3480534e49b8e0ba9aac4822803c0/src/full-codegen/s390/full-codegen-s390.cc
[modify] https://crrev.com/5738535ee0e3480534e49b8e0ba9aac4822803c0/src/full-codegen/x64/full-codegen-x64.cc
[modify] https://crrev.com/5738535ee0e3480534e49b8e0ba9aac4822803c0/src/full-codegen/x87/full-codegen-x87.cc
[modify] https://crrev.com/5738535ee0e3480534e49b8e0ba9aac4822803c0/src/interpreter/interpreter.cc

Project Member

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

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

commit c65e620237a8f30871148c235fc2e4649b6e09eb
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Tue Feb 21 15:06:34 2017

[heap] Be more restrictive about fast promotion mode

Exclude memory reducing scenarios and apply minimum percentage to absolute
sizes wrt. capacity rather then relative survival rate.

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

Change-Id: I30cac99a2ce72227e269d72f52a459d4be6234a5
Reviewed-on: https://chromium-review.googlesource.com/445737
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@{#43346}
[modify] https://crrev.com/c65e620237a8f30871148c235fc2e4649b6e09eb/src/heap/heap.cc
[modify] https://crrev.com/c65e620237a8f30871148c235fc2e4649b6e09eb/src/heap/heap.h

Project Member

Comment 10 by bugdroid1@chromium.org, Feb 21 2017

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

commit 243f0901ba9640fb9bae9af1b14124a0b49d5d2b
Author: mlippautz <mlippautz@chromium.org>
Date: Tue Feb 21 17:14:28 2017

UMA: Add histogram for young generation handling in V8

BUG= chromium:693413 

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

[modify] https://crrev.com/243f0901ba9640fb9bae9af1b14124a0b49d5d2b/tools/metrics/histograms/histograms.xml

Status: Fixed (was: Started)
The mode itself done and used for profiling and testing. We are still experimenting but currently there are no plans in shipping it. 

Sign in to add a comment