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

Issue 1326613002: heap: make array buffer maps disjoint (Closed)

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

Description

heap: make array buffer maps disjoint Remove intersection from the `std::map`s representing current live ArrayBuffers. While being simpler to understand, it poses significant performance issue for the active ArrayBuffer users (like node.js). Store buffers separately, and process them together during mark-sweep phase. BUG= R=mlippautz@chromium.org Committed: https://crrev.com/15a0ace533f5810bf87382decbbaf4799f6cac8e Cr-Commit-Position: refs/heads/master@{#30539}

Patch Set 1 #

Patch Set 2 : register live array buffers during evacuation #

Patch Set 3 : do not register new space arraybuffers during marking #

Patch Set 4 : simplify RegisterLiveArrayBuffer #

Total comments: 2

Patch Set 5 : adjust on unregister #

Total comments: 8

Patch Set 6 : fixes #

Patch Set 7 : fix #

Unified diffs Side-by-side diffs Delta from patch set Stats (+71 lines, -101 lines) Patch
M src/heap/heap.h View 1 2 3 2 chunks +1 line, -16 lines 0 comments Download
M src/heap/heap.cc View 1 2 3 4 5 6 3 chunks +59 lines, -82 lines 0 comments Download
M src/heap/mark-compact.cc View 1 2 3 4 5 2 chunks +9 lines, -2 lines 0 comments Download
M src/heap/objects-visiting-inl.h View 1 2 1 chunk +2 lines, -1 line 0 comments Download

Messages

Total messages: 20 (3 generated)
fedor.indutny
See: https://codereview.chromium.org/1316873004/ for previous details. Michael, I'm going to fix it tomorrow. Will push a ...
5 years, 3 months ago (2015-09-01 10:02:23 UTC) #1
fedor.indutny
Michael, Just pushed out the update. Looks like this change should be enough to make ...
5 years, 3 months ago (2015-09-01 18:24:15 UTC) #2
fedor.indutny
The other thing that makes me worried is that it registers the buffers twice now. ...
5 years, 3 months ago (2015-09-01 18:37:38 UTC) #3
fedor.indutny
I think I have addressed the last concern about marking. Explicitly checking the space where ...
5 years, 3 months ago (2015-09-01 18:53:45 UTC) #4
fedor.indutny
Michael, I have pushed one more update, which removes extra `erase()` call.
5 years, 3 months ago (2015-09-02 06:14:06 UTC) #5
Michael Lippautz
Will do the proper review soon. Thanks for hanging onto this! https://codereview.chromium.org/1326613002/diff/60001/src/heap/heap.cc File src/heap/heap.cc (right): ...
5 years, 3 months ago (2015-09-02 06:16:14 UTC) #6
fedor.indutny
Done. https://codereview.chromium.org/1326613002/diff/60001/src/heap/heap.cc File src/heap/heap.cc (right): https://codereview.chromium.org/1326613002/diff/60001/src/heap/heap.cc#newcode1774 src/heap/heap.cc:1774: not_yet_discovered_buffers->erase(data); On 2015/09/02 06:16:14, Michael Lippautz wrote: > ...
5 years, 3 months ago (2015-09-02 06:25:47 UTC) #7
Michael Lippautz
We're getting there. https://codereview.chromium.org/1326613002/diff/80001/src/heap/heap.cc File src/heap/heap.cc (right): https://codereview.chromium.org/1326613002/diff/80001/src/heap/heap.cc#newcode1778 src/heap/heap.cc:1778: reinterpret_cast<v8::Isolate*>(isolate_) amount_of_external_allocated_memory_ -= length; https://codereview.chromium.org/1326613002/diff/80001/src/heap/mark-compact.cc File ...
5 years, 3 months ago (2015-09-02 07:23:00 UTC) #8
fedor.indutny
All fixed! Let's Land Zis Thing! ;) Thanks! https://codereview.chromium.org/1326613002/diff/80001/src/heap/heap.cc File src/heap/heap.cc (right): https://codereview.chromium.org/1326613002/diff/80001/src/heap/heap.cc#newcode1778 src/heap/heap.cc:1778: reinterpret_cast<v8::Isolate*>(isolate_) ...
5 years, 3 months ago (2015-09-02 08:56:08 UTC) #9
Michael Lippautz
lgtm -- let's try again; since we lack test coverage in this area be prepared ...
5 years, 3 months ago (2015-09-02 09:11:06 UTC) #10
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1326613002/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1326613002/100001
5 years, 3 months ago (2015-09-02 09:13:10 UTC) #12
commit-bot: I haz the power
Try jobs failed on following builders: v8_android_arm_compile_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_android_arm_compile_rel/builds/7498)
5 years, 3 months ago (2015-09-02 09:17:02 UTC) #14
fedor.indutny
Michael, Looks like there was some error about std::map not having ->at(). I have fixed ...
5 years, 3 months ago (2015-09-02 09:22:28 UTC) #15
Michael Lippautz
lgtm l
5 years, 3 months ago (2015-09-02 09:24:16 UTC) #16
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1326613002/120001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1326613002/120001
5 years, 3 months ago (2015-09-02 09:39:38 UTC) #18
commit-bot: I haz the power
Committed patchset #7 (id:120001)
5 years, 3 months ago (2015-09-02 10:05:02 UTC) #19
commit-bot: I haz the power
5 years, 3 months ago (2015-09-02 10:05:22 UTC) #20
Message was sent while issue was closed.
Patchset 7 (id:??) landed as
https://crrev.com/15a0ace533f5810bf87382decbbaf4799f6cac8e
Cr-Commit-Position: refs/heads/master@{#30539}

Powered by Google App Engine
This is Rietveld 408576698