Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(176)

Issue 1957323003: [heap] Add page evacuation mode for new->new (Closed)

Created:
4 years, 7 months ago by Michael Lippautz
Modified:
4 years, 6 months ago
Reviewers:
ulan
CC:
v8-reviews_googlegroups.com, Hannes Payer (out of office), ulan, Michael Hablich
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[heap] Add page evacuation mode for new->new Adds an evacuation mode that allows moving pages within new space without copying objects. Basic idea: a) Move page within new space b) Sweep page to make iterable and process ArrayBuffers c) Finish sweep till next scavenge Threshold is currently 70% live bytes, i.e., the same threshold we use to determine fragmented pages. BUG=chromium:581412 LOG=N CQ_EXTRA_TRYBOTS=tryserver.v8:v8_linux_arm64_gc_stress_dbg,v8_linux_gc_stress_dbg,v8_mac_gc_stress_dbg,v8_linux64_tsan_rel,v8_mac64_asan_rel Committed: https://crrev.com/49b23201671b25092a3c22eb85783f39b95a5f87 Cr-Commit-Position: refs/heads/master@{#36990}

Patch Set 1 #

Patch Set 2 : Unifications #

Patch Set 3 : Added tests #

Patch Set 4 : rebase #

Patch Set 5 : Finish sweeping newspace before scavenger #

Patch Set 6 : #

Patch Set 7 : #

Patch Set 8 : Rebase and fix testing #

Patch Set 9 : Fixes #

Patch Set 10 : Fix to space updates #

Patch Set 11 : More fixes #

Patch Set 12 : Log contains_age_mark #

Patch Set 13 : rebase after fix #

Total comments: 3

Patch Set 14 : rebase after sweeper fix on ToT #

Total comments: 12

Patch Set 15 : Addressed comments #

Total comments: 2

Patch Set 16 : Rebalance instead of replace #

Total comments: 2

Patch Set 17 : Addressed comments #

Patch Set 18 : Switch threshold flag back to 70 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+454 lines, -231 lines) Patch
M src/heap/heap.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +2 lines, -0 lines 0 comments Download
M src/heap/mark-compact.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 4 chunks +4 lines, -2 lines 0 comments Download
M src/heap/mark-compact.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 24 chunks +249 lines, -158 lines 0 comments Download
M src/heap/spaces.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 5 chunks +16 lines, -5 lines 0 comments Download
M src/heap/spaces.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 3 chunks +53 lines, -16 lines 0 comments Download
M test/cctest/cctest.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -0 lines 0 comments Download
M test/cctest/heap/test-heap.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +0 lines, -50 lines 0 comments Download
A test/cctest/heap/test-page-promotion.cc View 1 2 3 4 5 6 7 1 chunk +129 lines, -0 lines 0 comments Download

Messages

Total messages: 36 (19 generated)
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1957323003/260001
4 years, 6 months ago (2016-06-08 18:56:47 UTC) #5
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux64_tsan_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux64_tsan_rel/builds/264)
4 years, 6 months ago (2016-06-08 19:30:16 UTC) #7
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1957323003/280001
4 years, 6 months ago (2016-06-09 09:21:04 UTC) #9
Michael Lippautz
PTAL https://codereview.chromium.org/1957323003/diff/280001/src/flag-definitions.h File src/flag-definitions.h (right): https://codereview.chromium.org/1957323003/diff/280001/src/flag-definitions.h#newcode273 src/flag-definitions.h:273: DEFINE_INT(page_promotion_threshold, 0, Will change this back to 70 ...
4 years, 6 months ago (2016-06-09 09:21:22 UTC) #11
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 6 months ago (2016-06-09 10:04:32 UTC) #13
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1957323003/300001
4 years, 6 months ago (2016-06-09 14:57:46 UTC) #15
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 6 months ago (2016-06-09 15:39:22 UTC) #17
ulan
Looking good. https://codereview.chromium.org/1957323003/diff/300001/src/heap/mark-compact.cc File src/heap/mark-compact.cc (right): https://codereview.chromium.org/1957323003/diff/300001/src/heap/mark-compact.cc#newcode1898 src/heap/mark-compact.cc:1898: static void MoveToToSpace(Page* page, Space* owner) { ...
4 years, 6 months ago (2016-06-10 12:58:55 UTC) #18
Michael Lippautz
PTAL, I rewrote the part with replacing pages. I actually want to simplify this a ...
4 years, 6 months ago (2016-06-10 15:18:16 UTC) #19
Michael Lippautz
As discussed offline: Let's do the rebalancing simplification already in this CL. This way we ...
4 years, 6 months ago (2016-06-13 17:25:27 UTC) #22
ulan
lgtm! https://codereview.chromium.org/1957323003/diff/320001/src/heap/spaces.h File src/heap/spaces.h (right): https://codereview.chromium.org/1957323003/diff/320001/src/heap/spaces.h#newcode428 src/heap/spaces.h:428: // |PAGE_NEW_NEW_PROMITION|: A page tagged with this flag ...
4 years, 6 months ago (2016-06-14 15:38:51 UTC) #24
Michael Lippautz
https://codereview.chromium.org/1957323003/diff/320001/src/heap/spaces.h File src/heap/spaces.h (right): https://codereview.chromium.org/1957323003/diff/320001/src/heap/spaces.h#newcode428 src/heap/spaces.h:428: // |PAGE_NEW_NEW_PROMITION|: A page tagged with this flag has ...
4 years, 6 months ago (2016-06-15 06:49:30 UTC) #25
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1957323003/420001
4 years, 6 months ago (2016-06-15 06:50:52 UTC) #27
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1957323003/440001
4 years, 6 months ago (2016-06-15 07:34:23 UTC) #31
commit-bot: I haz the power
Committed patchset #18 (id:440001)
4 years, 6 months ago (2016-06-15 08:18:07 UTC) #33
commit-bot: I haz the power
Patchset 18 (id:??) landed as https://crrev.com/49b23201671b25092a3c22eb85783f39b95a5f87 Cr-Commit-Position: refs/heads/master@{#36990}
4 years, 6 months ago (2016-06-15 08:19:57 UTC) #35
Michael Lippautz
4 years, 6 months ago (2016-06-16 16:24:10 UTC) #36
Message was sent while issue was closed.
A revert of this CL (patchset #18 id:440001) has been created in
https://codereview.chromium.org/2063013005/ by mlippautz@chromium.org.

The reason for reverting is: Fragmentation of LABs could result in increasing
memory usage (pages) instead of shrinking.

BUG=chromium:620320
LOG=N.

Powered by Google App Engine
This is Rietveld 408576698