summaryrefslogtreecommitdiff
path: root/test/ProfileTestMultiDex
diff options
context:
space:
mode:
authorHiroshi Yamauchi <yamauchi@google.com>2015-06-16 18:29:23 -0700
committerHiroshi Yamauchi <yamauchi@google.com>2015-07-13 15:50:20 -0700
commit0b71357fb52be9bb06d35396a3042b4381b01041 (patch)
tree44b8d6b0ca4a71f33cda55068fa9e14864c55625 /test/ProfileTestMultiDex
parent0e87d1809443d41b431ce3a686b4e074df2d7b8b (diff)
Thread-local mark stacks for the CC collector.
Thread-local mark stacks are assigned to mutators where they push references in read barriers to reduce the (CAS) synchronization cost in a global mark stack/queue. We step through three mark stack modes (thread-local, shared, GC-exclusive) and use per-thread flags to disable/enable system weak accesses (only for the CC collector) instead of the existing global one to safely perform the marking phase. The reasons are 1) thread-local mark stacks for mutators need to be revoked using a checkpoint to avoid races (incorrectly leaving a reference on mark stacks) when terminating marking, and 2) we can’t use a checkpoint while system weak accesses are disabled (or a deadlock would happen). More details are described in the code comments. Performance improvements in Ritzperf EAAC: a ~2.8% improvement (13290->12918) in run time and a ~23% improvement (51.6s->39.8s) in the total GC time on N5. Bug: 12687968 Change-Id: I5d234d7e48bf115cd773d38bdb62ad24ce9116c7
Diffstat (limited to 'test/ProfileTestMultiDex')
0 files changed, 0 insertions, 0 deletions