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

Issue 1608583002: New page local store buffer. (Closed)

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

Description

New page local store buffer. This replaces the global remembered set with per-page remembered sets. Each page in the old space, map space, and large object space keeps track of the set of slots in the page pointing to the new space. The data structure for storing slot sets is a two-level bitmap, which allows us to remove the store buffer overflow and SCAN_ON_SCAVENGE logic. Design doc: https://goo.gl/sMKCf7 BUG=chromium:578883 LOG=NO Committed: https://crrev.com/bb883395a814d10cee927eabe689a8070a40a86a Cr-Commit-Position: refs/heads/master@{#33806}

Patch Set 1 #

Patch Set 2 : #

Total comments: 52

Patch Set 3 : Address comments #

Patch Set 4 : Rebase #

Patch Set 5 : Do not filter LO slots. #

Patch Set 6 : Fix compile #

Patch Set 7 : Check for owner in LO pages #

Patch Set 8 : Fix compile #

Patch Set 9 : Fix finding LO page by address #

Patch Set 10 : Rebase #

Patch Set 11 : Rebase #

Patch Set 12 : Test dynamic buffer #

Patch Set 13 : Revert dynamic buckets #

Total comments: 8

Patch Set 14 : Address comments #

Patch Set 15 : Fix bucket release #

Patch Set 16 : Rebase and fix signed unsigned conversion #

Unified diffs Side-by-side diffs Delta from patch set Stats (+519 lines, -865 lines) Patch
M BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +1 line, -0 lines 0 comments Download
M src/arm/code-stubs-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +2 lines, -5 lines 0 comments Download
M src/arm64/code-stubs-arm64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +1 line, -2 lines 0 comments Download
M src/counters.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +0 lines, -1 line 0 comments Download
M src/heap/heap.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 5 chunks +0 lines, -22 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 9 chunks +1 line, -31 lines 0 comments Download
M src/heap/incremental-marking.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +0 lines, -1 line 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 5 chunks +9 lines, -9 lines 0 comments Download
A src/heap/slot-set.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +203 lines, -0 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 7 chunks +12 lines, -14 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 8 chunks +22 lines, -12 lines 0 comments Download
M src/heap/spaces-inl.h View 1 chunk +0 lines, -12 lines 0 comments Download
M src/heap/store-buffer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +14 lines, -151 lines 0 comments Download
M src/heap/store-buffer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 6 chunks +90 lines, -495 lines 0 comments Download
M src/heap/store-buffer-inl.h View 1 2 3 4 5 6 7 8 2 chunks +22 lines, -26 lines 0 comments Download
M src/ia32/code-stubs-ia32.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +2 lines, -5 lines 0 comments Download
M src/mips/code-stubs-mips.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +2 lines, -5 lines 0 comments Download
M src/mips64/code-stubs-mips64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +2 lines, -5 lines 0 comments Download
M src/x64/code-stubs-x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +2 lines, -5 lines 0 comments Download
M src/x87/code-stubs-x87.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +2 lines, -5 lines 0 comments Download
M test/cctest/test-unboxed-doubles.cc View 1 2 3 4 5 6 7 8 9 1 chunk +0 lines, -59 lines 0 comments Download
A test/unittests/heap/slot-set-unittest.cc View 1 2 3 1 chunk +130 lines, -0 lines 0 comments Download
M test/unittests/unittests.gyp View 1 2 3 1 chunk +1 line, -0 lines 0 comments Download
M tools/gyp/v8.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 30 (13 generated)
ulan
PTAL
4 years, 11 months ago (2016-01-18 19:13:32 UTC) #5
Hannes Payer (out of office)
This is awesome! First round of comments. https://codereview.chromium.org/1608583002/diff/20001/BUILD.gn File BUILD.gn (right): https://codereview.chromium.org/1608583002/diff/20001/BUILD.gn#newcode1069 BUILD.gn:1069: "src/heap/slot-set.h", alphabetic ...
4 years, 11 months ago (2016-01-20 19:43:01 UTC) #6
Michael Lippautz
Good bye SCAN_ON_SCAVENGE, you will not be missed ;) https://codereview.chromium.org/1608583002/diff/20001/src/heap/slot-set.h File src/heap/slot-set.h (right): https://codereview.chromium.org/1608583002/diff/20001/src/heap/slot-set.h#newcode20 src/heap/slot-set.h:20: ...
4 years, 11 months ago (2016-01-21 10:07:32 UTC) #7
Michael Lippautz
https://codereview.chromium.org/1608583002/diff/20001/src/heap/store-buffer-inl.h File src/heap/store-buffer-inl.h (right): https://codereview.chromium.org/1608583002/diff/20001/src/heap/store-buffer-inl.h#newcode15 src/heap/store-buffer-inl.h:15: uint32_t StoreBuffer::SlotAddressToOffset(Address addr, SlotSet** slots) { Maybe rename to ...
4 years, 11 months ago (2016-01-22 08:03:49 UTC) #8
Michael Lippautz
https://codereview.chromium.org/1608583002/diff/20001/src/heap/slot-set.h File src/heap/slot-set.h (right): https://codereview.chromium.org/1608583002/diff/20001/src/heap/slot-set.h#newcode46 src/heap/slot-set.h:46: bucket[bucket_index][cell_index] |= 1u << bit_index; Maybe we can additionally ...
4 years, 10 months ago (2016-01-26 09:12:24 UTC) #9
ulan
Thank you for the comments! I uploaded new PS. https://codereview.chromium.org/1608583002/diff/20001/BUILD.gn File BUILD.gn (right): https://codereview.chromium.org/1608583002/diff/20001/BUILD.gn#newcode1069 BUILD.gn:1069: ...
4 years, 10 months ago (2016-01-28 19:07:23 UTC) #10
Michael Lippautz
lgtm from my side! https://codereview.chromium.org/1608583002/diff/240001/src/heap/store-buffer.cc File src/heap/store-buffer.cc (right): https://codereview.chromium.org/1608583002/diff/240001/src/heap/store-buffer.cc#newcode184 src/heap/store-buffer.cc:184: if (heap->InNewSpace(object) && object->IsHeapObject()) { ...
4 years, 10 months ago (2016-02-01 17:36:13 UTC) #12
Hannes Payer (out of office)
https://codereview.chromium.org/1608583002/diff/240001/src/heap/store-buffer.cc File src/heap/store-buffer.cc (right): https://codereview.chromium.org/1608583002/diff/240001/src/heap/store-buffer.cc#newcode102 src/heap/store-buffer.cc:102: Page* last_page = nullptr; You are currently not assigning ...
4 years, 10 months ago (2016-02-02 12:40:37 UTC) #13
ulan
Thanks for the comments. https://codereview.chromium.org/1608583002/diff/240001/src/heap/store-buffer.cc File src/heap/store-buffer.cc (right): https://codereview.chromium.org/1608583002/diff/240001/src/heap/store-buffer.cc#newcode102 src/heap/store-buffer.cc:102: Page* last_page = nullptr; On ...
4 years, 10 months ago (2016-02-02 13:27:28 UTC) #14
Hannes Payer (out of office)
LGTM
4 years, 10 months ago (2016-02-07 15:46:03 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/1608583002/280001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1608583002/280001
4 years, 10 months ago (2016-02-08 07:46:04 UTC) #17
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_win_rel_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_win_rel_ng/builds/2472)
4 years, 10 months ago (2016-02-08 07:52:28 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/1608583002/300001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1608583002/300001
4 years, 10 months ago (2016-02-08 08:22:16 UTC) #21
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 10 months ago (2016-02-08 08:48:45 UTC) #23
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1608583002/300001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1608583002/300001
4 years, 10 months ago (2016-02-08 08:49:32 UTC) #26
commit-bot: I haz the power
Committed patchset #16 (id:300001)
4 years, 10 months ago (2016-02-08 08:51:10 UTC) #28
commit-bot: I haz the power
4 years, 10 months ago (2016-02-08 08:51:49 UTC) #30
Message was sent while issue was closed.
Patchset 16 (id:??) landed as
https://crrev.com/bb883395a814d10cee927eabe689a8070a40a86a
Cr-Commit-Position: refs/heads/master@{#33806}

Powered by Google App Engine
This is Rietveld 408576698