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

Issue 1382003002: [heap] Divide available memory upon compaction tasks (Closed)

Created:
5 years, 2 months ago by Michael Lippautz
Modified:
5 years, 2 months ago
CC:
v8-reviews_googlegroups.com
Base URL:
https://chromium.googlesource.com/v8/v8.git@counters
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[heap] Divide available memory upon compaction tasks - Fairly (round-robin) divide available memory upon compaction tasks. - Ensure an upper limit (of memory) since dividing is O(n) for n free-space nodes. - Refill from free lists managed by sweeper once a compaction space becomes empty. Assumption for dividing memory: Memory in the free lists is sparse upon starting compaction (which means that only few nodes are available), except for memory reducer GCs, which happen in idle time though (so it's less of a problem). BUG=chromium:524425 LOG=N Committed: https://crrev.com/30236c052ba9266fc55412a8fd63b17f683ff40b Cr-Commit-Position: refs/heads/master@{#31234}

Patch Set 1 : Initial #

Patch Set 2 : Rebase on ToT #

Patch Set 3 : Shuffle around declarations and add HeapTester friend #

Patch Set 4 : Rework tests #

Total comments: 10

Patch Set 5 : Addressed first round of comments #

Total comments: 1

Patch Set 6 : Rebase #

Patch Set 7 : Rework RefillFreeList (now in *Space); Do not refill from small and medium free lists #

Total comments: 12

Patch Set 8 : Addressed comments #

Total comments: 2

Patch Set 9 : Rebase + addressed comment #

Unified diffs Side-by-side diffs Delta from patch set Stats (+367 lines, -67 lines) Patch
M src/heap/mark-compact.h View 1 2 3 4 5 6 7 2 chunks +14 lines, -2 lines 0 comments Download
M src/heap/mark-compact.cc View 1 2 3 4 5 6 4 chunks +7 lines, -30 lines 0 comments Download
M src/heap/spaces.h View 1 2 3 4 5 6 7 8 7 chunks +31 lines, -5 lines 0 comments Download
M src/heap/spaces.cc View 1 2 3 4 5 6 7 6 chunks +127 lines, -8 lines 0 comments Download
M test/cctest/heap-tester.h View 1 2 3 2 chunks +32 lines, -11 lines 0 comments Download
M test/cctest/test-spaces.cc View 1 2 3 5 chunks +156 lines, -11 lines 0 comments Download

Messages

Total messages: 55 (27 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/1382003002/140001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1382003002/140001
5 years, 2 months ago (2015-10-08 20:50:28 UTC) #7
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux_nodcheck_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_nodcheck_rel/builds/7318)
5 years, 2 months ago (2015-10-08 21:03:03 UTC) #9
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1382003002/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1382003002/160001
5 years, 2 months ago (2015-10-09 10:10:12 UTC) #11
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux64_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux64_rel/builds/10470)
5 years, 2 months ago (2015-10-09 10:12:25 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/1382003002/180001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1382003002/180001
5 years, 2 months ago (2015-10-09 10:27:17 UTC) #16
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux64_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux64_rel/builds/10472) v8_linux_arm64_rel on ...
5 years, 2 months ago (2015-10-09 10:30:50 UTC) #18
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1382003002/200001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1382003002/200001
5 years, 2 months ago (2015-10-09 10:35:03 UTC) #21
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux64_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux64_rel/builds/10473)
5 years, 2 months ago (2015-10-09 10:38:41 UTC) #23
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1382003002/220001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1382003002/220001
5 years, 2 months ago (2015-10-09 10:40:14 UTC) #26
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux64_asan_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux64_asan_rel/builds/8764) v8_linux_mips64el_compile_rel on ...
5 years, 2 months ago (2015-10-09 10:43:12 UTC) #28
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1382003002/240001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1382003002/240001
5 years, 2 months ago (2015-10-09 10:46:59 UTC) #31
Michael Lippautz
PTAL. Now that counters are separated we can properly share parts of free lists concurrently. ...
5 years, 2 months ago (2015-10-09 11:08:59 UTC) #33
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years, 2 months ago (2015-10-09 11:09:14 UTC) #35
ulan
https://codereview.chromium.org/1382003002/diff/240001/src/heap/mark-compact.cc File src/heap/mark-compact.cc (right): https://codereview.chromium.org/1382003002/diff/240001/src/heap/mark-compact.cc#newcode611 src/heap/mark-compact.cc:611: void MarkCompactCollector::RefillFreeList(CompactionSpace* space) { Will this function be used ...
5 years, 2 months ago (2015-10-09 11:48:49 UTC) #36
Michael Lippautz
https://codereview.chromium.org/1382003002/diff/240001/src/heap/mark-compact.cc File src/heap/mark-compact.cc (right): https://codereview.chromium.org/1382003002/diff/240001/src/heap/mark-compact.cc#newcode611 src/heap/mark-compact.cc:611: void MarkCompactCollector::RefillFreeList(CompactionSpace* space) { On 2015/10/09 11:48:48, ulan wrote: ...
5 years, 2 months ago (2015-10-09 12:20:13 UTC) #37
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1382003002/300001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1382003002/300001
5 years, 2 months ago (2015-10-12 15:01:23 UTC) #39
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years, 2 months ago (2015-10-12 15:42:50 UTC) #41
Michael Lippautz
+hpayer PTAL - RefillFreeList is part of PagedSpace and CompactionSpace to make use of polymorphism. ...
5 years, 2 months ago (2015-10-12 15:56:49 UTC) #43
Hannes Payer (out of office)
Are you going to refill the compaction space CLs on the fly when they run ...
5 years, 2 months ago (2015-10-12 16:38:26 UTC) #44
Hannes Payer (out of office)
Ignore the refill comment, the overloading takes care of it... https://codereview.chromium.org/1382003002/diff/300001/src/heap/spaces.cc File src/heap/spaces.cc (right): https://codereview.chromium.org/1382003002/diff/300001/src/heap/spaces.cc#newcode1065 ...
5 years, 2 months ago (2015-10-12 16:42:33 UTC) #45
Hannes Payer (out of office)
LGTM after fixing the nits
5 years, 2 months ago (2015-10-12 17:10:03 UTC) #46
Michael Lippautz
https://codereview.chromium.org/1382003002/diff/300001/src/heap/mark-compact.cc File src/heap/mark-compact.cc (left): https://codereview.chromium.org/1382003002/diff/300001/src/heap/mark-compact.cc#oldcode602 src/heap/mark-compact.cc:602: // to only refill them for the old space. ...
5 years, 2 months ago (2015-10-12 17:16:47 UTC) #47
ulan
lgtm https://codereview.chromium.org/1382003002/diff/320001/src/heap/spaces.h File src/heap/spaces.h (right): https://codereview.chromium.org/1382003002/diff/320001/src/heap/spaces.h#newcode1732 src/heap/spaces.h:1732: // node could be found, the method falls ...
5 years, 2 months ago (2015-10-13 10:01:23 UTC) #48
Michael Lippautz
https://codereview.chromium.org/1382003002/diff/320001/src/heap/spaces.h File src/heap/spaces.h (right): https://codereview.chromium.org/1382003002/diff/320001/src/heap/spaces.h#newcode1732 src/heap/spaces.h:1732: // node could be found, the method falls back ...
5 years, 2 months ago (2015-10-13 10:37:57 UTC) #49
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1382003002/340001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1382003002/340001
5 years, 2 months ago (2015-10-13 10:38:21 UTC) #52
commit-bot: I haz the power
Committed patchset #9 (id:340001)
5 years, 2 months ago (2015-10-13 11:05:07 UTC) #53
commit-bot: I haz the power
Patchset 9 (id:??) landed as https://crrev.com/30236c052ba9266fc55412a8fd63b17f683ff40b Cr-Commit-Position: refs/heads/master@{#31234}
5 years, 2 months ago (2015-10-13 11:05:31 UTC) #54
Michael Lippautz
5 years, 2 months ago (2015-10-13 11:59:46 UTC) #55
Message was sent while issue was closed.
A revert of this CL (patchset #9 id:340001) has been created in
https://codereview.chromium.org/1406533002/ by mlippautz@chromium.org.

The reason for reverting is: Failing tests:
https://chromegw.corp.google.com/i/client.v8/builders/V8%20Linux%20-%20arm64%....

Powered by Google App Engine
This is Rietveld 408576698