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

Issue 1487853002: [heap] Move to LAB-based allocation for newspace evacuation. (Closed)

Created:
5 years ago by Michael Lippautz
Modified:
5 years ago
CC:
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] Move to LAB-based allocation for newspace evacuation. This CL prepare newspace evacuation for parallel execution wrt. to actual allocations. The priority for allocations is: * Try to allocate from LAB if objects are below kMaxLabObjectSize * Allocate directly (synchronized) from newspace for larger objects. * Fall back to old space allocation (which will be backed by a local compaction space in future). Semantical change: Previously we did fall back to regular new space promotion if we are OOM in old space. With this CL we fall back to new space promotion, which could fail because of fragmentation, again leading to an old space allocation that finally bails into OOM. Newspace evacuation is still single threaded and requires further changes to allocation site tracking. BUG=chromium:524425 LOG=N Committed: https://crrev.com/a4e3a3b6a81ef39835c757145ff55299d713bcba Cr-Commit-Position: refs/heads/master@{#32970}

Patch Set 1 #

Patch Set 2 : Added cctests for LocalAllocationBuffer #

Total comments: 1

Patch Set 3 : Rebase #

Total comments: 6

Patch Set 4 : Addressed comments #

Patch Set 5 : tests: Allocate LAB memory on heap since we require GetHeap() from filler objects for slow dchecks #

Patch Set 6 : Switch to 4K LABs. Performance within noise on splay #

Patch Set 7 : Added non-sticky and sticky bailout mode to old space for the new space allocation #

Total comments: 2

Patch Set 8 : Added comments describing LocalAllocationBuffer #

Unified diffs Side-by-side diffs Delta from patch set Stats (+583 lines, -46 lines) Patch
M src/heap/mark-compact.cc View 1 2 3 4 5 6 7 2 chunks +109 lines, -19 lines 0 comments Download
M src/heap/spaces.h View 1 2 3 4 5 6 7 6 chunks +68 lines, -3 lines 0 comments Download
M src/heap/spaces.cc View 1 2 3 4 5 6 7 6 chunks +53 lines, -11 lines 0 comments Download
M src/heap/spaces-inl.h View 1 2 3 5 chunks +68 lines, -13 lines 0 comments Download
M test/cctest/cctest.gyp View 1 2 3 4 5 6 7 1 chunk +1 line, -0 lines 0 comments Download
A test/cctest/heap/test-lab.cc View 1 2 3 4 1 chunk +284 lines, -0 lines 0 comments Download

Messages

Total messages: 39 (24 generated)
Michael Lippautz
PTAL, comments welcomed :) https://codereview.chromium.org/1487853002/diff/120001/src/heap/mark-compact.cc File src/heap/mark-compact.cc (right): https://codereview.chromium.org/1487853002/diff/120001/src/heap/mark-compact.cc#newcode1588 src/heap/mark-compact.cc:1588: static const intptr_t kLabSize = ...
5 years ago (2015-12-01 14:51:37 UTC) #9
Hannes Payer (out of office)
Overall looking good already, a few comments. https://codereview.chromium.org/1487853002/diff/160001/src/heap/mark-compact.cc File src/heap/mark-compact.cc (right): https://codereview.chromium.org/1487853002/diff/160001/src/heap/mark-compact.cc#newcode1577 src/heap/mark-compact.cc:1577: static const ...
5 years ago (2015-12-16 14:51:06 UTC) #13
Michael Lippautz
Merging adjacent LABs was easier than expected. https://codereview.chromium.org/1487853002/diff/160001/src/heap/mark-compact.cc File src/heap/mark-compact.cc (right): https://codereview.chromium.org/1487853002/diff/160001/src/heap/mark-compact.cc#newcode1577 src/heap/mark-compact.cc:1577: static const ...
5 years ago (2015-12-16 20:06:05 UTC) #15
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1487853002/220001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1487853002/220001
5 years ago (2015-12-16 20:38:53 UTC) #17
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux_dbg on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_dbg/builds/12222)
5 years ago (2015-12-16 21:17:05 UTC) #19
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1487853002/230001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1487853002/230001
5 years ago (2015-12-17 09:14:09 UTC) #22
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux64_avx2_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux64_avx2_rel/builds/7975)
5 years ago (2015-12-17 09:18:44 UTC) #24
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1487853002/250001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1487853002/250001
5 years ago (2015-12-17 09:22:50 UTC) #27
Hannes Payer (out of office)
LGTM, if performance is OK. https://codereview.chromium.org/1487853002/diff/290001/src/heap/spaces.h File src/heap/spaces.h (right): https://codereview.chromium.org/1487853002/diff/290001/src/heap/spaces.h#newcode1871 src/heap/spaces.h:1871: class LocalAllocationBuffer { This ...
5 years ago (2015-12-18 10:29:06 UTC) #28
Michael Lippautz
Verified locally (yesterday) using Octane. Will run the perf bots once more, but don't expect ...
5 years ago (2015-12-18 10:53:05 UTC) #29
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1487853002/310001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1487853002/310001
5 years ago (2015-12-18 10:54:26 UTC) #31
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years ago (2015-12-18 11:20:29 UTC) #33
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1487853002/310001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1487853002/310001
5 years ago (2015-12-18 16:56:38 UTC) #36
commit-bot: I haz the power
Committed patchset #8 (id:310001)
5 years ago (2015-12-18 18:33:16 UTC) #37
commit-bot: I haz the power
5 years ago (2015-12-18 18:33:56 UTC) #39
Message was sent while issue was closed.
Patchset 8 (id:??) landed as
https://crrev.com/a4e3a3b6a81ef39835c757145ff55299d713bcba
Cr-Commit-Position: refs/heads/master@{#32970}

Powered by Google App Engine
This is Rietveld 408576698