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

Issue 2006923002: Revert of [heap] Fine-grained JSArrayBuffer tracking (Closed)

Created:
4 years, 7 months ago by Marijn Kruisselbrink
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

Revert of [heap] Fine-grained JSArrayBuffer tracking (patchset #19 id:770001 of https://codereview.chromium.org/1964023002/ ) Reason for revert: Causing frequent test flakes on maps_pixel_tests on various chromium bots. For example in https://build.chromium.org/p/chromium.gpu/builders/Linux%20Release%20%28NVIDIA%29/builds/78677/steps/maps_pixel_test%20on%20NVIDIA%20GPU%20on%20Linux%20on%20Linux/logs/stdio it crashes in 0 chrome!Process<(lambda at ../../v8/src/heap/array-buffer-tracker-inl.h:51:15)> [spaces.h : 962 + 0x0] 1 chrome!EvacuatePage [array-buffer-tracker-inl.h : 51 + 0x5] 2 chrome!RunInternal [mark-compact.cc : 3213 + 0x5] ... Original issue's 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} TBR=hpayer@chromium.org,mlippautz@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:611688

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+169 lines, -514 lines) Patch
M BUILD.gn View 1 chunk +0 lines, -1 line 0 comments Download
M include/v8.h View 1 chunk +1 line, -1 line 0 comments Download
M src/heap/array-buffer-tracker.h View 1 chunk +38 lines, -82 lines 0 comments Download
M src/heap/array-buffer-tracker.cc View 2 chunks +94 lines, -104 lines 0 comments Download
D src/heap/array-buffer-tracker-inl.h View 1 chunk +0 lines, -74 lines 0 comments Download
M src/heap/heap.h View 2 chunks +0 lines, -12 lines 0 comments Download
M src/heap/heap.cc View 3 chunks +4 lines, -3 lines 0 comments Download
M src/heap/incremental-marking.cc View 1 chunk +0 lines, -1 line 0 comments Download
M src/heap/mark-compact.cc View 8 chunks +18 lines, -15 lines 0 comments Download
M src/heap/objects-visiting-inl.h View 1 chunk +5 lines, -0 lines 0 comments Download
M src/heap/scavenger.cc View 1 chunk +8 lines, -0 lines 0 comments Download
M src/heap/spaces.h View 5 chunks +1 line, -49 lines 0 comments Download
M src/heap/spaces.cc View 2 chunks +0 lines, -6 lines 0 comments Download
M src/v8.gyp View 1 chunk +0 lines, -1 line 0 comments Download
M test/cctest/cctest.gyp View 1 chunk +0 lines, -1 line 0 comments Download
M test/cctest/heap/heap-utils.h View 1 chunk +0 lines, -4 lines 0 comments Download
M test/cctest/heap/heap-utils.cc View 1 chunk +0 lines, -15 lines 0 comments Download
D test/cctest/heap/test-array-buffer-tracker.cc View 1 chunk +0 lines, -145 lines 0 comments Download

Messages

Total messages: 11 (5 generated)
Marijn Kruisselbrink
Created Revert of [heap] Fine-grained JSArrayBuffer tracking
4 years, 7 months ago (2016-05-23 21:40:56 UTC) #1
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2006923002/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/2006923002/1
4 years, 7 months ago (2016-05-23 21:41:01 UTC) #2
commit-bot: I haz the power
No L-G-T-M from a valid reviewer yet. CQ run can only be started by full ...
4 years, 7 months ago (2016-05-23 21:41:03 UTC) #4
Michael Lippautz
lgtm
4 years, 7 months ago (2016-05-24 06:20:53 UTC) #5
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2006923002/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/2006923002/1
4 years, 7 months ago (2016-05-24 06:21:04 UTC) #7
commit-bot: I haz the power
4 years, 7 months ago (2016-05-24 06:21:16 UTC) #9
Failed to apply patch for src/heap/scavenger.cc:
While running git apply --index -3 -p1;
  error: patch failed: src/heap/scavenger.cc:289
  Falling back to three-way merge...
  Applied patch to 'src/heap/scavenger.cc' with conflicts.
  U src/heap/scavenger.cc

Patch:       src/heap/scavenger.cc
Index: src/heap/scavenger.cc
diff --git a/src/heap/scavenger.cc b/src/heap/scavenger.cc
index
51968c3990b23f1916a773917b17d801052071f8..1d785d08d24232388be4d45603d68f9da313c22a
100644
--- a/src/heap/scavenger.cc
+++ b/src/heap/scavenger.cc
@@ -289,6 +289,14 @@
   static inline void EvacuateJSArrayBuffer(Map* map, HeapObject** slot,
                                            HeapObject* object) {
     ObjectEvacuationStrategy<POINTER_OBJECT>::Visit(map, slot, object);
+
+    Heap* heap = map->GetHeap();
+    MapWord map_word = object->map_word();
+    DCHECK(map_word.IsForwardingAddress());
+    HeapObject* target = map_word.ToForwardingAddress();
+    if (!heap->InNewSpace(target)) {
+      heap->array_buffer_tracker()->Promote(JSArrayBuffer::cast(target));
+    }
   }

Powered by Google App Engine
This is Rietveld 408576698