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

Issue 1632913003: [heap] Move to page lookups for SemiSpace, NewSpace, and Heap containment methods (Closed)

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

Description

[heap] Move to page lookups for SemiSpace, NewSpace, and Heap containment methods Preparing the young generation for (real) non-contiguous backing memory, this change removes object masks that are used to compute containment in semi and new space. The masks are replaced by lookups for object tags and page headers, where possible. Details: - Use the fast checks (page header lookups) for containment in regular code. - Use the slow version that masks out the page start adress and iterates all pages of a space for debugging/verification. - The slow version works for off-heap/unmapped memory. - Encapsulate all checks for the old->new barrier in Heap::RecordWrite(). BUG=chromium:581412 LOG=N Committed: https://crrev.com/cfbd25617cfb8177bbb6377280e23ec356eb2373 Cr-Commit-Position: refs/heads/master@{#33857}

Patch Set 1 : #

Patch Set 2 : #

Patch Set 3 : #

Patch Set 4 : More cleanup #

Patch Set 5 : x64, ia32 #

Patch Set 6 : Rebase #

Patch Set 7 : arm, arm64 #

Patch Set 8 : Remove newspace masks #

Patch Set 9 : Fix arm #

Total comments: 24

Patch Set 10 : Addressed comments #

Total comments: 1

Patch Set 11 : Rebase (including new store buffer) small fix for serializer #

Patch Set 12 : Rearranged condition in RemoveInvalidSlots #

Total comments: 2

Patch Set 13 : DCHECK in serializer #

Total comments: 14

Patch Set 14 : Addressed comments #

Patch Set 15 : Fix containment checks for store buffer (and future slots buffer) by keeping the memory till after … #

Patch Set 16 : mips ports #

Unified diffs Side-by-side diffs Delta from patch set Stats (+244 lines, -285 lines) Patch
M src/arm/macro-assembler-arm.h View 1 2 3 4 5 6 7 8 2 chunks +2 lines, -2 lines 0 comments Download
M src/arm/macro-assembler-arm.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +4 lines, -3 lines 0 comments Download
M src/arm/simulator-arm.cc View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -1 line 0 comments Download
M src/arm64/macro-assembler-arm64.h View 1 2 3 4 5 6 1 chunk +3 lines, -0 lines 0 comments Download
M src/arm64/macro-assembler-arm64.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +14 lines, -4 lines 0 comments Download
M src/arm64/simulator-arm64.cc View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -1 line 0 comments Download
M src/assembler.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +0 lines, -1 line 0 comments Download
M src/assembler.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +0 lines, -6 lines 0 comments Download
M src/frames.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +4 lines, -4 lines 0 comments Download
M src/heap/heap.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 3 chunks +9 lines, -11 lines 0 comments Download
M src/heap/heap.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 3 chunks +47 lines, -22 lines 0 comments Download
M src/heap/heap-inl.h View 1 2 3 4 5 6 7 8 9 3 chunks +10 lines, -20 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 2 chunks +6 lines, -4 lines 0 comments Download
M src/heap/slots-buffer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +4 lines, -1 line 0 comments Download
M src/heap/spaces.h View 1 2 3 4 5 6 7 8 9 10 12 chunks +20 lines, -73 lines 0 comments Download
M src/heap/spaces.cc View 1 2 3 4 5 6 7 8 9 10 6 chunks +15 lines, -29 lines 0 comments Download
M src/heap/spaces-inl.h View 1 2 3 4 5 6 7 8 9 10 2 chunks +52 lines, -3 lines 0 comments Download
M src/heap/store-buffer-inl.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +0 lines, -1 line 0 comments Download
M src/ia32/macro-assembler-ia32.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +6 lines, -22 lines 0 comments Download
M src/mips/macro-assembler-mips.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3 chunks +4 lines, -5 lines 0 comments Download
M src/mips/macro-assembler-mips.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +3 lines, -3 lines 0 comments Download
M src/mips/simulator-mips.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +2 lines, -1 line 0 comments Download
M src/mips64/macro-assembler-mips64.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3 chunks +4 lines, -5 lines 0 comments Download
M src/mips64/macro-assembler-mips64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +3 lines, -3 lines 0 comments Download
M src/mips64/simulator-mips64.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +2 lines, -1 line 0 comments Download
M src/objects-inl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 3 chunks +6 lines, -12 lines 0 comments Download
M src/snapshot/serialize.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +9 lines, -7 lines 0 comments Download
M src/x64/macro-assembler-x64.h View 1 2 3 4 5 2 chunks +2 lines, -2 lines 0 comments Download
M src/x64/macro-assembler-x64.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +3 lines, -32 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 +2 lines, -2 lines 0 comments Download
M test/cctest/test-weakmaps.cc View 1 2 4 2 chunks +2 lines, -2 lines 0 comments Download
M test/cctest/test-weaksets.cc View 1 2 2 chunks +2 lines, -2 lines 0 comments Download

Messages

Total messages: 49 (28 generated)
Michael Lippautz
This is missing the mips/ppc ports but I would already like to get some general ...
4 years, 10 months ago (2016-02-05 12:44:40 UTC) #20
Yang
https://codereview.chromium.org/1632913003/diff/260001/src/snapshot/serialize.cc File src/snapshot/serialize.cc (right): https://codereview.chromium.org/1632913003/diff/260001/src/snapshot/serialize.cc#newcode1015 src/snapshot/serialize.cc:1015: isolate->heap()->RecordWriteSlow( \ On 2016/02/05 12:44:40, Michael Lippautz wrote: > ...
4 years, 10 months ago (2016-02-05 12:54:05 UTC) #21
Hannes Payer (out of office)
First round of comments. https://codereview.chromium.org/1632913003/diff/260001/src/arm/macro-assembler-arm.h File src/arm/macro-assembler-arm.h (right): https://codereview.chromium.org/1632913003/diff/260001/src/arm/macro-assembler-arm.h#newcode222 src/arm/macro-assembler-arm.h:222: Label* branch) { I think ...
4 years, 10 months ago (2016-02-08 16:05:40 UTC) #22
Michael Lippautz
Thanks a lot for the detailed comments! General: - Most "Address" interfaces are now versions ...
4 years, 10 months ago (2016-02-08 18:00:39 UTC) #23
Hannes Payer (out of office)
https://codereview.chromium.org/1632913003/diff/260001/src/arm/macro-assembler-arm.h File src/arm/macro-assembler-arm.h (right): https://codereview.chromium.org/1632913003/diff/260001/src/arm/macro-assembler-arm.h#newcode222 src/arm/macro-assembler-arm.h:222: Label* branch) { On 2016/02/08 18:00:38, Michael Lippautz wrote: ...
4 years, 10 months ago (2016-02-08 21:33:51 UTC) #24
Michael Lippautz
PTAL. I kept the *Slow versions around for debugging and verifying. https://codereview.chromium.org/1632913003/diff/260001/src/heap/heap.h File src/heap/heap.h (right): ...
4 years, 10 months ago (2016-02-09 08:03:06 UTC) #25
Yang
https://codereview.chromium.org/1632913003/diff/320001/src/snapshot/serialize.cc File src/snapshot/serialize.cc (right): https://codereview.chromium.org/1632913003/diff/320001/src/snapshot/serialize.cc#newcode1017 src/snapshot/serialize.cc:1017: /* Builtins have been filtered above, so we are ...
4 years, 10 months ago (2016-02-09 09:54:26 UTC) #26
Michael Lippautz
https://codereview.chromium.org/1632913003/diff/320001/src/snapshot/serialize.cc File src/snapshot/serialize.cc (right): https://codereview.chromium.org/1632913003/diff/320001/src/snapshot/serialize.cc#newcode1017 src/snapshot/serialize.cc:1017: /* Builtins have been filtered above, so we are ...
4 years, 10 months ago (2016-02-09 13:28:54 UTC) #27
ulan
lgtm, two nits https://codereview.chromium.org/1632913003/diff/260001/src/heap/spaces.cc File src/heap/spaces.cc (right): https://codereview.chromium.org/1632913003/diff/260001/src/heap/spaces.cc#newcode1841 src/heap/spaces.cc:1841: std::swap(from->current_capacity_, to->current_capacity_); Let's extract it into ...
4 years, 10 months ago (2016-02-09 13:36:50 UTC) #28
Hannes Payer (out of office)
lgtm, with nits https://codereview.chromium.org/1632913003/diff/340001/src/arm/simulator-arm.cc File src/arm/simulator-arm.cc (right): https://codereview.chromium.org/1632913003/diff/340001/src/arm/simulator-arm.cc#newcode396 src/arm/simulator-arm.cc:396: current_heap->ContainsSlow(obj->address())) { Why ContainsSlow here? This ...
4 years, 10 months ago (2016-02-09 14:40:23 UTC) #29
Michael Lippautz
https://codereview.chromium.org/1632913003/diff/260001/src/heap/spaces.cc File src/heap/spaces.cc (right): https://codereview.chromium.org/1632913003/diff/260001/src/heap/spaces.cc#newcode1841 src/heap/spaces.cc:1841: std::swap(from->current_capacity_, to->current_capacity_); On 2016/02/09 13:36:50, ulan wrote: > Let's ...
4 years, 10 months ago (2016-02-09 14:50:28 UTC) #30
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1632913003/360001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1632913003/360001
4 years, 10 months ago (2016-02-09 14:51:01 UTC) #32
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux_mipsel_compile_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_mipsel_compile_rel/builds/9982)
4 years, 10 months ago (2016-02-09 14:55:51 UTC) #34
Yang
On 2016/02/09 14:55:51, commit-bot: I haz the power wrote: > Dry run: Try jobs failed ...
4 years, 10 months ago (2016-02-09 15:37:54 UTC) #35
Michael Lippautz
An update on the asan crahser: tl;dr We crashed because we were looking up a ...
4 years, 10 months ago (2016-02-09 20:18:02 UTC) #37
ulan
On 2016/02/09 20:18:02, Michael Lippautz wrote: > An update on the asan crahser: > > ...
4 years, 10 months ago (2016-02-10 09:12:25 UTC) #39
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1632913003/420001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1632913003/420001
4 years, 10 months ago (2016-02-10 09:21:03 UTC) #41
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 10 months ago (2016-02-10 09:42:39 UTC) #43
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1632913003/420001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1632913003/420001
4 years, 10 months ago (2016-02-10 09:43:16 UTC) #46
commit-bot: I haz the power
Committed patchset #16 (id:420001)
4 years, 10 months ago (2016-02-10 09:46:36 UTC) #47
commit-bot: I haz the power
4 years, 10 months ago (2016-02-10 09:47:30 UTC) #49
Message was sent while issue was closed.
Patchset 16 (id:??) landed as
https://crrev.com/cfbd25617cfb8177bbb6377280e23ec356eb2373
Cr-Commit-Position: refs/heads/master@{#33857}

Powered by Google App Engine
This is Rietveld 408576698