Chromium Code Reviews
DescriptionParallel 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. #
Messages
Total messages: 10 (1 generated)
|
||||||||||||||||||||||||||||||||||||||||||||||