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

Issue 804673003: Update tag bits atomically (Closed)

Created:
6 years ago by koda
Modified:
6 years ago
Reviewers:
Ivan Posva
CC:
reviews_dartlang.org, vm-dev_dartlang.org
Visibility:
Public.

Description

Use compare and swap when updating tag word in all C++ runtime code that might run concurrently. This was done back in r39731, but then partially reverted in r39734, and has been broken ever since. Also distinguish between sync/unsync versions. While old-space GC marker is non-concurrent, it uses unsync versions for efficiency. Add a template to share code between sync versions and avoid unintentional discrepancies. R=iposva@google.com Committed: https://code.google.com/p/dart/source/detail?r=42409

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Patch Set 4 : #

Patch Set 5 : #

Patch Set 6 : #

Total comments: 4

Patch Set 7 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+39 lines, -30 lines) Patch
M runtime/vm/gc_marker.cc View 1 2 3 4 5 6 4 chunks +7 lines, -6 lines 0 comments Download
M runtime/vm/object.cc View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/raw_object.h View 1 2 3 4 5 6 4 chunks +29 lines, -21 lines 0 comments Download
M runtime/vm/scavenger.cc View 1 2 3 4 2 chunks +2 lines, -2 lines 0 comments Download

Messages

Total messages: 7 (1 generated)
koda
6 years ago (2014-12-16 00:22:34 UTC) #2
koda
6 years ago (2014-12-16 17:35:35 UTC) #3
koda
Updated CL to provide both sync/unsync versions and use unsync where possible. Performance eval is ...
6 years ago (2014-12-16 17:37:24 UTC) #4
Ivan Posva
LGTM -Ivan https://codereview.chromium.org/804673003/diff/100001/runtime/vm/gc_marker.cc File runtime/vm/gc_marker.cc (right): https://codereview.chromium.org/804673003/diff/100001/runtime/vm/gc_marker.cc#newcode192 runtime/vm/gc_marker.cc:192: if (raw_obj->IsWatched()) { How about: bool is_watched ...
6 years ago (2014-12-16 20:33:23 UTC) #5
koda
https://codereview.chromium.org/804673003/diff/100001/runtime/vm/gc_marker.cc File runtime/vm/gc_marker.cc (right): https://codereview.chromium.org/804673003/diff/100001/runtime/vm/gc_marker.cc#newcode192 runtime/vm/gc_marker.cc:192: if (raw_obj->IsWatched()) { On 2014/12/16 20:33:23, Ivan Posva wrote: ...
6 years ago (2014-12-16 20:49:20 UTC) #6
koda
6 years ago (2014-12-16 21:31:33 UTC) #7
Message was sent while issue was closed.
Committed patchset #7 (id:120001) manually as r42409 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698