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

Issue 1964023002: [heap] Fine-grained JSArrayBuffer tracking (Closed)

Created:
4 years, 7 months ago by Michael Lippautz
Modified:
4 years, 7 months ago
CC:
Hannes Payer (out of office), ulan, 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] Fine-grained JSArrayBuffer tracking Track based on JSArrayBuffer addresses instead of the attached backing store. This way we can later on iterate buffers on a single page. The reland also switches to a page-based implementation where a page contains the set of its contained (live and dead) buffers. 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 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/b2d8bfc7931eef49d527605ba485950dea41cde3 Cr-Commit-Position: refs/heads/master@{#36437}

Patch Set 1 : baseline (broken CL) #

Patch Set 2 : Fix for registering on black-allocated page #

Patch Set 3 : Better documentation #

Patch Set 4 : Fix corner case where sweeper is fast and we reuse hashmap entries before FreeDead is called #

Patch Set 5 : New implementation using page-local trackers #

Patch Set 6 : #

Patch Set 7 : Fix tests, harden expectations, more comments #

Total comments: 1

Patch Set 8 : Tests once more #

Total comments: 12

Patch Set 9 : Addressed comments #

Patch Set 10 : Split up the freeing and resetting phase #

Patch Set 11 : Freeing in bulk for new space #

Patch Set 12 : #

Patch Set 13 : Remove dead code #

Patch Set 14 : Try std::unordered_map #

Patch Set 15 : Rebase #

Patch Set 16 : back to std::map #

Total comments: 11

Patch Set 17 : Addressed comments #

Patch Set 18 : Rebase (tests) #

Patch Set 19 : Rebase again #

Unified diffs Side-by-side diffs Delta from patch set Stats (+509 lines, -164 lines) Patch
M BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +1 line, -0 lines 0 comments Download
M include/v8.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 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 9 10 11 12 13 14 15 16 1 chunk +81 lines, -37 lines 0 comments Download
M src/heap/array-buffer-tracker.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2 chunks +100 lines, -90 lines 0 comments Download
A src/heap/array-buffer-tracker-inl.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +74 lines, -0 lines 0 comments Download
M src/heap/heap.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +12 lines, -0 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 16 17 18 3 chunks +3 lines, -4 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 16 1 chunk +1 line, -0 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 15 16 17 18 8 chunks +15 lines, -18 lines 0 comments Download
M src/heap/objects-visiting-inl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +0 lines, -5 lines 0 comments Download
M src/heap/scavenger.cc View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +0 lines, -8 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 16 17 18 5 chunks +49 lines, -1 line 0 comments Download
M src/heap/spaces.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 2 chunks +6 lines, -0 lines 0 comments Download
M src/v8.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +1 line, -0 lines 0 comments Download
M test/cctest/cctest.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +1 line, -0 lines 0 comments Download
M test/cctest/heap/heap-utils.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +4 lines, -0 lines 0 comments Download
M test/cctest/heap/heap-utils.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 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 8 9 10 11 12 13 14 15 16 17 1 chunk +145 lines, -0 lines 0 comments Download

Messages

Total messages: 108 (66 generated)
Michael Lippautz
4 years, 7 months ago (2016-05-10 15:03:59 UTC) #3
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1964023002/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1964023002/40001
4 years, 7 months ago (2016-05-10 15:19:41 UTC) #6
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 7 months ago (2016-05-10 15:48:12 UTC) #8
Michael Lippautz
PTAL since it's a new approach.
4 years, 7 months ago (2016-05-11 08:21:05 UTC) #13
Michael Lippautz
https://codereview.chromium.org/1964023002/diff/180001/include/v8.h File include/v8.h (right): https://codereview.chromium.org/1964023002/diff/180001/include/v8.h#newcode8559 include/v8.h:8559: reinterpret_cast<intptr_t*>( It's really unfortunate that we require this magic ...
4 years, 7 months ago (2016-05-11 08:22:51 UTC) #14
Hannes Payer (out of office)
I like the local array buffer trackers! I have a couple of comments. https://codereview.chromium.org/1964023002/diff/200001/src/heap/array-buffer-tracker.h File ...
4 years, 7 months ago (2016-05-11 11:12:34 UTC) #15
Michael Lippautz
PTAL https://codereview.chromium.org/1964023002/diff/200001/src/heap/array-buffer-tracker.h File src/heap/array-buffer-tracker.h (right): https://codereview.chromium.org/1964023002/diff/200001/src/heap/array-buffer-tracker.h#newcode66 src/heap/array-buffer-tracker.h:66: // For each GC round (Scavenger, or incremental/full ...
4 years, 7 months ago (2016-05-11 18:43:26 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/1964023002/260001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1964023002/260001
4 years, 7 months ago (2016-05-11 19:36:03 UTC) #18
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux64_rel_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux64_rel_ng/builds/5628) v8_linux64_rel_ng_triggered on ...
4 years, 7 months ago (2016-05-11 19:42:33 UTC) #20
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1964023002/260001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1964023002/260001
4 years, 7 months ago (2016-05-11 21:09:53 UTC) #23
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux64_asan_rel on tryserver.v8 (JOB_FAILED, no build URL)
4 years, 7 months ago (2016-05-11 21:10:45 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/1964023002/240001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1964023002/240001
4 years, 7 months ago (2016-05-11 22:05:43 UTC) #29
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_mac_gc_stress_dbg on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_mac_gc_stress_dbg/builds/105)
4 years, 7 months ago (2016-05-11 22:57:34 UTC) #31
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1964023002/330001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1964023002/330001
4 years, 7 months ago (2016-05-12 15:30:00 UTC) #35
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 7 months ago (2016-05-12 16:02:55 UTC) #38
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1964023002/590001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1964023002/590001
4 years, 7 months ago (2016-05-18 06:46:18 UTC) #53
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux_arm_rel_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_arm_rel_ng/builds/1733) v8_linux_arm_rel_ng_triggered on ...
4 years, 7 months ago (2016-05-18 07:10:12 UTC) #55
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1964023002/630001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1964023002/630001
4 years, 7 months ago (2016-05-18 09:43:50 UTC) #61
Michael Lippautz
PTAL, the description is also updated to reflect what's going on
4 years, 7 months ago (2016-05-18 10:35:56 UTC) #65
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1964023002/670001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1964023002/670001
4 years, 7 months ago (2016-05-19 15:22:06 UTC) #67
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux_arm64_gc_stress_dbg on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_arm64_gc_stress_dbg/builds/101) v8_linux_arm64_rel_ng on ...
4 years, 7 months ago (2016-05-19 15:23:21 UTC) #69
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1964023002/690001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1964023002/690001
4 years, 7 months ago (2016-05-19 15:34:28 UTC) #71
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux_arm_rel_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_arm_rel_ng/builds/1871) v8_linux_arm_rel_ng_triggered on ...
4 years, 7 months ago (2016-05-19 15:41:21 UTC) #73
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1964023002/710001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1964023002/710001
4 years, 7 months ago (2016-05-19 17:02:38 UTC) #75
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 7 months ago (2016-05-19 17:48:31 UTC) #77
Hannes Payer (out of office)
looking good already, cool stuff https://codereview.chromium.org/1964023002/diff/710001/include/v8.h File include/v8.h (right): https://codereview.chromium.org/1964023002/diff/710001/include/v8.h#newcode7360 include/v8.h:7360: kApiPointerSize + kApiPointerSize; Why ...
4 years, 7 months ago (2016-05-20 12:21:17 UTC) #78
Michael Lippautz
Thanks a lot! https://codereview.chromium.org/1964023002/diff/710001/include/v8.h File include/v8.h (right): https://codereview.chromium.org/1964023002/diff/710001/include/v8.h#newcode7360 include/v8.h:7360: kApiPointerSize + kApiPointerSize; On 2016/05/20 12:21:17, ...
4 years, 7 months ago (2016-05-23 08:41:01 UTC) #79
Hannes Payer (out of office)
lgtm
4 years, 7 months ago (2016-05-23 08:48:18 UTC) #80
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1964023002/750001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1964023002/750001
4 years, 7 months ago (2016-05-23 08:56:18 UTC) #83
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 7 months ago (2016-05-23 09:43:01 UTC) #85
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1964023002/750001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1964023002/750001
4 years, 7 months ago (2016-05-23 09:51:52 UTC) #88
commit-bot: I haz the power
Try jobs failed on following builders: v8_presubmit on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_presubmit/builds/15748)
4 years, 7 months ago (2016-05-23 09:54:22 UTC) #90
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1964023002/750001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1964023002/750001
4 years, 7 months ago (2016-05-23 09:58:00 UTC) #92
commit-bot: I haz the power
Try jobs failed on following builders: v8_presubmit on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_presubmit/builds/15753)
4 years, 7 months ago (2016-05-23 10:06:21 UTC) #94
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1964023002/750001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1964023002/750001
4 years, 7 months ago (2016-05-23 10:23:52 UTC) #96
commit-bot: I haz the power
Try jobs failed on following builders: v8_presubmit on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_presubmit/builds/15756)
4 years, 7 months ago (2016-05-23 10:27:01 UTC) #98
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1964023002/770001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1964023002/770001
4 years, 7 months ago (2016-05-23 10:33:05 UTC) #101
commit-bot: I haz the power
Committed patchset #19 (id:770001)
4 years, 7 months ago (2016-05-23 11:20:03 UTC) #103
commit-bot: I haz the power
Patchset 19 (id:??) landed as https://crrev.com/b2d8bfc7931eef49d527605ba485950dea41cde3 Cr-Commit-Position: refs/heads/master@{#36437}
4 years, 7 months ago (2016-05-23 11:22:01 UTC) #105
Marijn Kruisselbrink
A revert of this CL (patchset #19 id:770001) has been created in https://codereview.chromium.org/2006923002/ by mek@chromium.org. ...
4 years, 7 months ago (2016-05-23 21:40:56 UTC) #106
Michael Achenbach
A revert of this CL (patchset #19 id:770001) has been created in https://codereview.chromium.org/2000373003/ by machenbach@chromium.org. ...
4 years, 7 months ago (2016-05-24 06:45:14 UTC) #107
Michael Lippautz
4 years, 7 months ago (2016-05-24 07:20:59 UTC) #108
Message was sent while issue was closed.
A revert of this CL (patchset #19 id:770001) has been created in
https://codereview.chromium.org/2006183003/ by mlippautz@chromium.org.

The reason for reverting is: Revert it..

Powered by Google App Engine
This is Rietveld 408576698