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

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

Created:
4 years, 8 months ago by Michael Lippautz
Modified:
4 years, 8 months ago
CC:
Hannes Payer (out of office), ulan, v8-reviews_googlegroups.com
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->old In a full mark-compact GC, instead of copying memory to old space for pages that have more than X% live bytes, we just move the whole page over to old space. X=70 (default value) BUG=chromium:581412 LOG=N Committed: https://crrev.com/0d7e23a6edd3822970983030a77a5b80cd337911 Cr-Commit-Position: refs/heads/master@{#35610}

Patch Set 1 #

Patch Set 2 : Add sweeping (on main thread); fix ArrayBufferTracker; fix ExternalStringTable #

Patch Set 3 : Add Page::Convert and rebase #

Patch Set 4 : Fixing external string table and ArrayBufferTracker #

Patch Set 5 : Lower fast evacuation threshold to 0% to get test coverage #

Patch Set 6 : Properly unlink categories before sweeping #

Patch Set 7 : Fix race condition when adding a page to swept list #

Patch Set 8 : Page moving phase needs to be performed before parallel evacuation #

Patch Set 9 : Concurrent sweeping for FAST_EVACUATION pages #

Patch Set 10 : Cleanup code #

Patch Set 11 : Add promoted size #

Patch Set 12 : Fix one more race condition #

Patch Set 13 : Cleanup #

Total comments: 12

Patch Set 14 : Addressed first round of comments #

Patch Set 15 : Some more optimizations #

Patch Set 16 : Rebase on master #

Total comments: 9

Patch Set 17 : Addressed comments #

Patch Set 18 : Rebase on master #

Patch Set 19 : Add test for promoting pages below age mark #

Patch Set 20 : Fix compilation of test on Windows and set flag to its default (70) #

Patch Set 21 : Disable optimize_for_size for the feature test as we require >1 page new space #

Unified diffs Side-by-side diffs Delta from patch set Stats (+251 lines, -70 lines) Patch
M src/flag-definitions.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +3 lines, -0 lines 0 comments Download
M src/heap/heap.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 2 chunks +0 lines, -2 lines 0 comments Download
M src/heap/mark-compact.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 chunks +3 lines, -3 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 16 17 15 chunks +120 lines, -46 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 17 8 chunks +24 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 17 2 chunks +14 lines, -1 line 0 comments Download
M src/heap/spaces-inl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 2 chunks +16 lines, -1 line 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 15 16 17 18 19 20 2 chunks +48 lines, -0 lines 0 comments Download
M test/cctest/heap/utils-inl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +23 lines, -12 lines 0 comments Download

Messages

Total messages: 83 (53 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/1863983002/290001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1863983002/290001
4 years, 8 months ago (2016-04-07 14:39:21 UTC) #15
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 8 months ago (2016-04-07 15:05:10 UTC) #17
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1863983002/390001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1863983002/390001
4 years, 8 months ago (2016-04-07 17:37:38 UTC) #22
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1863983002/410001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1863983002/410001
4 years, 8 months ago (2016-04-07 17:43:08 UTC) #24
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 8 months ago (2016-04-07 18:10:03 UTC) #26
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1863983002/430001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1863983002/430001
4 years, 8 months ago (2016-04-07 19:56:57 UTC) #28
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 8 months ago (2016-04-07 20:22:31 UTC) #30
Michael Lippautz
Please take a look. Not going to land before the branch cut. https://codereview.chromium.org/1863983002/diff/490001/src/flag-definitions.h File src/flag-definitions.h ...
4 years, 8 months ago (2016-04-08 07:09:59 UTC) #36
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1863983002/490001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1863983002/490001
4 years, 8 months ago (2016-04-08 07:27:02 UTC) #38
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 8 months ago (2016-04-08 07:59:02 UTC) #40
Hannes Payer (out of office)
First round of comments. https://codereview.chromium.org/1863983002/diff/490001/src/heap/mark-compact.cc File src/heap/mark-compact.cc (right): https://codereview.chromium.org/1863983002/diff/490001/src/heap/mark-compact.cc#newcode1784 src/heap/mark-compact.cc:1784: page->heap()->new_space()->ReplaceWithEmptyPage(page); Why don't we take ...
4 years, 8 months ago (2016-04-08 10:42:40 UTC) #41
Michael Lippautz
Thanks for the feedback! All addressed. https://codereview.chromium.org/1863983002/diff/490001/src/heap/mark-compact.cc File src/heap/mark-compact.cc (right): https://codereview.chromium.org/1863983002/diff/490001/src/heap/mark-compact.cc#newcode1784 src/heap/mark-compact.cc:1784: page->heap()->new_space()->ReplaceWithEmptyPage(page); On 2016/04/08 ...
4 years, 8 months ago (2016-04-08 11:30:01 UTC) #43
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1863983002/600001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1863983002/600001
4 years, 8 months ago (2016-04-14 09:32:42 UTC) #47
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 8 months ago (2016-04-14 09:59:54 UTC) #49
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1863983002/640001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1863983002/640001
4 years, 8 months ago (2016-04-14 16:52:38 UTC) #51
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 8 months ago (2016-04-14 17:21:53 UTC) #53
Michael Lippautz
ready again
4 years, 8 months ago (2016-04-14 17:32:23 UTC) #56
Hannes Payer (out of office)
https://codereview.chromium.org/1863983002/diff/640001/src/flag-definitions.h File src/flag-definitions.h (right): https://codereview.chromium.org/1863983002/diff/640001/src/flag-definitions.h#newcode256 src/flag-definitions.h:256: DEFINE_BOOL(page_evacuation, true, "evacuate pages based on utilization") The term ...
4 years, 8 months ago (2016-04-18 12:12:23 UTC) #57
Michael Lippautz
https://codereview.chromium.org/1863983002/diff/640001/src/flag-definitions.h File src/flag-definitions.h (right): https://codereview.chromium.org/1863983002/diff/640001/src/flag-definitions.h#newcode256 src/flag-definitions.h:256: DEFINE_BOOL(page_evacuation, true, "evacuate pages based on utilization") On 2016/04/18 ...
4 years, 8 months ago (2016-04-18 12:57:38 UTC) #58
Hannes Payer (out of office)
LGTM Please at some tests, that show that the features works.
4 years, 8 months ago (2016-04-19 07:24:40 UTC) #60
Michael Lippautz
On 2016/04/19 07:24:40, Hannes Payer wrote: > LGTM > > Please at some tests, that ...
4 years, 8 months ago (2016-04-19 08:16:51 UTC) #61
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1863983002/700001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1863983002/700001
4 years, 8 months ago (2016-04-19 08:17:01 UTC) #63
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1863983002/740001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1863983002/740001
4 years, 8 months ago (2016-04-19 08:26:22 UTC) #67
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1863983002/760001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1863983002/760001
4 years, 8 months ago (2016-04-19 09:06:13 UTC) #69
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1863983002/800001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1863983002/800001
4 years, 8 months ago (2016-04-19 09:37:16 UTC) #73
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 8 months ago (2016-04-19 09:58:28 UTC) #75
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1863983002/800001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1863983002/800001
4 years, 8 months ago (2016-04-19 10:05:52 UTC) #78
commit-bot: I haz the power
Committed patchset #21 (id:800001)
4 years, 8 months ago (2016-04-19 10:07:56 UTC) #80
commit-bot: I haz the power
Patchset 21 (id:??) landed as https://crrev.com/0d7e23a6edd3822970983030a77a5b80cd337911 Cr-Commit-Position: refs/heads/master@{#35610}
4 years, 8 months ago (2016-04-19 10:09:20 UTC) #82
Michael Achenbach
4 years, 8 months ago (2016-04-19 12:51:20 UTC) #83
Message was sent while issue was closed.
A revert of this CL (patchset #21 id:800001) has been created in
https://codereview.chromium.org/1896883003/ by machenbach@chromium.org.

The reason for reverting is: [Sheriff] Breaks:
https://build.chromium.org/p/client.v8.ports/builders/V8%20Linux%20-%20arm64%....

Powered by Google App Engine
This is Rietveld 408576698