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

Issue 1351453008: Parallel marking. (Closed)

Created:
5 years, 3 months ago by koda
Modified:
5 years, 2 months ago
Reviewers:
Ivan Posva
CC:
reviews_dartlang.org, vm-dev_dartlang.org
Base URL:
git@github.com:dart-lang/sdk.git@master
Target Ref:
refs/heads/master
Visibility:
Public.

Description

Parallel marking. Provide both Unsync/SyncMarkingVisitor, where the latter uses CAS to acquire the header bits, guaranteeing that each object is processed by exactly one task when parallel tasks are running. UnsyncMarkingVisitor preserves the old behavior w.r.t. synchronization, and is used when num_tasks is 0. Split root set into two parts, and give them to separate tasks when possible. Add basic logging to help investigate how well work is distributed. (Marking stack block size is currently 64.) BUG= R=iposva@google.com Committed: https://github.com/dart-lang/sdk/commit/32798855969e4ffda8f628bc85556732dae1d336

Patch Set 1 #

Patch Set 2 : More cleanup. #

Patch Set 3 : Support both Sync/UnsyncMarkingVisitor. #

Patch Set 4 : Comments. #

Patch Set 5 : Exercise unsync code paths in unit test. #

Patch Set 6 : Comments. #

Patch Set 7 : Ensure fast skip on marked objects. #

Patch Set 8 : Add TODO about smi/new check. #

Total comments: 20

Patch Set 9 : Address comments. #

Patch Set 10 : Add TODO to remove busy wait #

Total comments: 8

Patch Set 11 : Address comments. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+292 lines, -135 lines) Patch
M runtime/vm/gc_marker.h View 1 2 2 chunks +6 lines, -4 lines 0 comments Download
M runtime/vm/gc_marker.cc View 1 2 3 4 5 6 7 8 9 10 18 chunks +237 lines, -127 lines 0 comments Download
M runtime/vm/heap_test.cc View 1 2 3 4 2 chunks +21 lines, -0 lines 0 comments Download
M runtime/vm/raw_object.h View 1 2 7 chunks +28 lines, -4 lines 0 comments Download

Messages

Total messages: 10 (1 generated)
koda
5 years, 3 months ago (2015-09-18 03:07:46 UTC) #2
Ivan Posva
First comments. I still need to understand the barrier use during marking a bit better. ...
5 years, 2 months ago (2015-10-01 11:22:44 UTC) #3
Ivan Posva
Additional comments. -Ivan https://codereview.chromium.org/1351453008/diff/140001/runtime/vm/gc_marker.cc File runtime/vm/gc_marker.cc (right): https://codereview.chromium.org/1351453008/diff/140001/runtime/vm/gc_marker.cc#newcode401 runtime/vm/gc_marker.cc:401: ASSERT(p != NULL); // TODO(koda): Why? ...
5 years, 2 months ago (2015-10-01 17:02:55 UTC) #4
koda
Addressed comments; will now investigate performance impact of sync_ flag rather than template. Meanwhile, PTAL. ...
5 years, 2 months ago (2015-10-01 20:30:11 UTC) #5
koda
Local performance tests suggest template version gives ~4% less total time spent in GC (i.e., ...
5 years, 2 months ago (2015-10-01 23:13:28 UTC) #6
koda
On 2015/10/01 23:13:28, koda wrote: > Local performance tests suggest template version gives ~4% less ...
5 years, 2 months ago (2015-10-02 20:46:23 UTC) #7
Ivan Posva
LGTM with comments. -Ivan https://codereview.chromium.org/1351453008/diff/180001/runtime/vm/gc_marker.cc File runtime/vm/gc_marker.cc (right): https://codereview.chromium.org/1351453008/diff/180001/runtime/vm/gc_marker.cc#newcode43 runtime/vm/gc_marker.cc:43: // success, and false if ...
5 years, 2 months ago (2015-10-08 19:56:12 UTC) #8
koda
Submitting after final tests and sync. https://codereview.chromium.org/1351453008/diff/180001/runtime/vm/gc_marker.cc File runtime/vm/gc_marker.cc (right): https://codereview.chromium.org/1351453008/diff/180001/runtime/vm/gc_marker.cc#newcode43 runtime/vm/gc_marker.cc:43: // success, and ...
5 years, 2 months ago (2015-10-08 21:32:08 UTC) #9
koda
5 years, 2 months ago (2015-10-08 22:02:01 UTC) #10
Message was sent while issue was closed.
Committed patchset #11 (id:200001) manually as
32798855969e4ffda8f628bc85556732dae1d336 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698