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

Issue 2999853002: [vm] Implement more efficient CAS in simarm/simarm64 modes, v.2 (Closed)

Created:
3 years, 4 months ago by alexmarkov
Modified:
3 years, 4 months ago
Reviewers:
zra, rmacnak, siva
CC:
reviews_dartlang.org, zra, vm-dev_dartlang.org
Target Ref:
refs/heads/master
Visibility:
Public.

Description

[vm] Implement more efficient CAS in simarm/simarm64 modes, v.2 This CL includes db26c8934799de6205b1c9c9dc498d8fc58a0d07 (patch set #1) with fix (patch set #2): * Include simulator.h explicitly where it is required as it is no longer included implicitly through other header files. Original review: https://codereview.chromium.org/2995803002/ When running on the simulator for arm/arm64, compare-and-swap operations used in VM were synchronized with simulator using mutex. It heavily impacts performance when doing parallel marking due to high contention (see #30317). This synchronization was implemented in order to make simulated LDREX/STREX instructions aware of CAS performed in VM. This CL drops this synchronization between VM and simulator: CAS operations in VM become regular, and simulator remembers value loaded with load-exclusive and performs CAS when doing store-exclusive to catch any concurrent modifications. Speeds up gen_snapshot of flutter benchmark complex_layout from 9.2s to 8.0s on my MacBook. R=asiva@google.com Committed: https://github.com/dart-lang/sdk/commit/5aead50245aa8e761506409094060fa5267befbc

Patch Set 1 #

Patch Set 2 : Include simulator.h explicitly where it is required #

Unified diffs Side-by-side diffs Delta from patch set Stats (+66 lines, -334 lines) Patch
M runtime/vm/atomic.h View 3 chunks +0 lines, -25 lines 0 comments Download
M runtime/vm/atomic_android.h View 2 chunks +0 lines, -2 lines 0 comments Download
M runtime/vm/atomic_fuchsia.h View 2 chunks +0 lines, -2 lines 0 comments Download
M runtime/vm/atomic_linux.h View 2 chunks +0 lines, -2 lines 0 comments Download
M runtime/vm/atomic_macos.h View 2 chunks +0 lines, -2 lines 0 comments Download
D runtime/vm/atomic_simulator.h View 1 chunk +0 lines, -31 lines 0 comments Download
M runtime/vm/debugger.h View 1 1 chunk +1 line, -0 lines 0 comments Download
M runtime/vm/simulator_arm.h View 2 chunks +7 lines, -34 lines 0 comments Download
M runtime/vm/simulator_arm.cc View 3 chunks +18 lines, -92 lines 0 comments Download
M runtime/vm/simulator_arm64.h View 3 chunks +7 lines, -34 lines 0 comments Download
M runtime/vm/simulator_arm64.cc View 3 chunks +33 lines, -109 lines 0 comments Download
M runtime/vm/vm_sources.gypi View 1 chunk +0 lines, -1 line 0 comments Download

Messages

Total messages: 7 (4 generated)
alexmarkov
3 years, 4 months ago (2017-08-14 15:45:46 UTC) #4
siva
lgtm
3 years, 4 months ago (2017-08-14 17:59:43 UTC) #5
alexmarkov
3 years, 4 months ago (2017-08-14 18:10:35 UTC) #7
Message was sent while issue was closed.
Committed patchset #2 (id:20001) manually as
5aead50245aa8e761506409094060fa5267befbc (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698