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

Issue 2036643002: Reland "[heap] Fine-grained JSArrayBuffer tracking" (Closed)

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

Description

Track based on JSArrayBuffer addresses on pages instead of the attached backing store. Details of tracking: - Scavenge: New space pages are processes in bulk on the main thread - MC: Unswept pages are processed in bulk in parallel. All other pages are processed by the sweeper concurrently. BUG=chromium:611688 LOG=N TEST=cctest/test-array-buffer-tracker/* CQ_EXTRA_TRYBOTS=tryserver.v8:v8_linux_arm64_gc_stress_dbg,v8_linux_gc_stress_dbg,v8_mac_gc_stress_dbg,v8_linux64_tsan_rel,v8_mac64_asan_rel Committed: https://crrev.com/839f3fd406426a221d74eb7a33a72794c3c7a548 Cr-Commit-Position: refs/heads/master@{#36798}

Patch Set 1 : baseline #

Patch Set 2 : #

Patch Set 3 : Remove DCHECK From FreeDead as it is used during TearDown (==SweepingDone()) #

Total comments: 4

Patch Set 4 : Refactor freeing of arrray buffers #

Total comments: 2

Patch Set 5 : Lock target page when moving entries. Small improvements for Add/Remove #

Patch Set 6 : #

Patch Set 7 : Fix path when releasing a page w/ 0 live bytes #

Patch Set 8 : Skip test relying on multiple new space pages during --optimize-for-size #

Patch Set 9 : Remove unneeded locking to avoid lock-inversion-order errors in TSAN #

Unified diffs Side-by-side diffs Delta from patch set Stats (+628 lines, -223 lines) Patch
M include/v8.h View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M src/heap/array-buffer-tracker.h View 1 2 3 4 5 6 7 8 1 chunk +68 lines, -40 lines 0 comments Download
M src/heap/array-buffer-tracker.cc View 1 2 3 4 5 6 7 8 1 chunk +146 lines, -92 lines 0 comments Download
M src/heap/heap.h View 1 4 chunks +12 lines, -6 lines 0 comments Download
M src/heap/heap.cc View 1 2 3 4 5 6 chunks +3 lines, -11 lines 0 comments Download
M src/heap/mark-compact.cc View 1 2 3 4 5 6 8 chunks +14 lines, -17 lines 0 comments Download
M src/heap/objects-visiting.h View 2 chunks +0 lines, -2 lines 0 comments Download
M src/heap/objects-visiting-inl.h View 1 2 3 4 4 chunks +8 lines, -35 lines 0 comments Download
M src/heap/scavenger.cc View 2 chunks +2 lines, -14 lines 0 comments Download
M src/heap/spaces.h View 1 2 3 4 5 chunks +8 lines, -1 line 0 comments Download
M src/heap/spaces.cc View 1 2 3 4 6 chunks +27 lines, -3 lines 0 comments Download
M src/heap/spaces-inl.h View 1 chunk +0 lines, -1 line 0 comments Download
M test/cctest/BUILD.gn View 1 2 3 4 1 chunk +1 line, -0 lines 0 comments Download
M test/cctest/cctest.gyp View 1 1 chunk +1 line, -0 lines 0 comments Download
M test/cctest/heap/heap-utils.h View 1 chunk +4 lines, -0 lines 0 comments Download
M test/cctest/heap/heap-utils.cc View 1 chunk +15 lines, -0 lines 0 comments Download
A test/cctest/heap/test-array-buffer-tracker.cc View 1 2 3 4 5 6 7 1 chunk +318 lines, -0 lines 0 comments Download

Messages

Total messages: 37 (19 generated)
Michael Lippautz
ptal; +ulan - I removed the atomic variable for the tracker. It's now all guarded ...
4 years, 6 months ago (2016-06-02 16:48:51 UTC) #3
Hannes Payer (out of office)
https://codereview.chromium.org/2036643002/diff/60001/src/heap/spaces.cc File src/heap/spaces.cc (right): https://codereview.chromium.org/2036643002/diff/60001/src/heap/spaces.cc#newcode1091 src/heap/spaces.cc:1091: PageIterator iterator(this); Factor that out into a function. https://codereview.chromium.org/2036643002/diff/60001/src/heap/spaces.cc#newcode1719 ...
4 years, 6 months ago (2016-06-03 07:43:16 UTC) #5
Michael Lippautz
I refactored a bit more so that we can bring back the DCHECK for sweeping ...
4 years, 6 months ago (2016-06-03 08:07:36 UTC) #6
ulan
https://codereview.chromium.org/2036643002/diff/80001/src/heap/array-buffer-tracker.cc File src/heap/array-buffer-tracker.cc (right): https://codereview.chromium.org/2036643002/diff/80001/src/heap/array-buffer-tracker.cc#newcode65 src/heap/array-buffer-tracker.cc:65: Page* target_page = Page::FromAddress(new_buffer->address()); Don't we need to lock ...
4 years, 6 months ago (2016-06-03 11:31:32 UTC) #7
Michael Lippautz
PTAL https://codereview.chromium.org/2036643002/diff/80001/src/heap/array-buffer-tracker.cc File src/heap/array-buffer-tracker.cc (right): https://codereview.chromium.org/2036643002/diff/80001/src/heap/array-buffer-tracker.cc#newcode65 src/heap/array-buffer-tracker.cc:65: Page* target_page = Page::FromAddress(new_buffer->address()); On 2016/06/03 11:31:32, ulan ...
4 years, 6 months ago (2016-06-07 09:54:29 UTC) #10
Hannes Payer (out of office)
LGTM if performance is good
4 years, 6 months ago (2016-06-07 12:17:05 UTC) #12
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2036643002/180001
4 years, 6 months ago (2016-06-07 13:36:06 UTC) #14
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux64_avx2_rel_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux64_avx2_rel_ng/builds/2741) v8_mac_rel_ng on ...
4 years, 6 months ago (2016-06-07 13:38:57 UTC) #16
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2036643002/200001
4 years, 6 months ago (2016-06-07 13:41:57 UTC) #19
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux_rel_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_rel_ng/builds/6842) v8_linux_rel_ng_triggered on ...
4 years, 6 months ago (2016-06-07 14:06:08 UTC) #21
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2036643002/220001
4 years, 6 months ago (2016-06-07 14:07:57 UTC) #23
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux64_tsan_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux64_tsan_rel/builds/262)
4 years, 6 months ago (2016-06-07 14:36:19 UTC) #25
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2036643002/240001
4 years, 6 months ago (2016-06-07 16:33:09 UTC) #27
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 6 months ago (2016-06-07 17:15:35 UTC) #29
ulan
lgtm
4 years, 6 months ago (2016-06-07 17:20:23 UTC) #30
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2036643002/240001
4 years, 6 months ago (2016-06-07 17:20:56 UTC) #33
commit-bot: I haz the power
Committed patchset #9 (id:240001)
4 years, 6 months ago (2016-06-07 17:28:40 UTC) #35
commit-bot: I haz the power
4 years, 6 months ago (2016-06-07 17:29:51 UTC) #37
Message was sent while issue was closed.
Patchset 9 (id:??) landed as
https://crrev.com/839f3fd406426a221d74eb7a33a72794c3c7a548
Cr-Commit-Position: refs/heads/master@{#36798}

Powered by Google App Engine
This is Rietveld 408576698