OSDN Git Service
Nicolas Geoffray [Fri, 17 Jul 2015 11:11:33 +0000 (11:11 +0000)]
am
33e50d85: Merge "Reduce space filter threshold to 128."
* commit '
33e50d85a3e43072fad4f58369b71da73b8f966c':
Reduce space filter threshold to 128.
Nicolas Geoffray [Fri, 17 Jul 2015 10:57:42 +0000 (10:57 +0000)]
Merge "Reduce space filter threshold to 128."
Nicolas Geoffray [Fri, 17 Jul 2015 10:14:52 +0000 (10:14 +0000)]
am
32f59e58: Merge "Revert "Use the quickened metadata to compile -QUICK opcodes.""
* commit '
32f59e585a1f8932f2a4ab3f934a0a83e29b3d19':
Revert "Use the quickened metadata to compile -QUICK opcodes."
Nicolas Geoffray [Fri, 17 Jul 2015 10:11:09 +0000 (11:11 +0100)]
Reduce space filter threshold to 128.
In order to get closer to our code increase limit.
Bug:
21868508
Change-Id: I05f76bfd97f03bda3741eca4e6a678c536ad0702
Nicolas Geoffray [Fri, 17 Jul 2015 10:02:45 +0000 (10:02 +0000)]
Merge "Revert "Use the quickened metadata to compile -QUICK opcodes.""
Nicolas Geoffray [Fri, 17 Jul 2015 10:02:30 +0000 (10:02 +0000)]
Revert "Use the quickened metadata to compile -QUICK opcodes."
Broke sdk build. Investigating.
This reverts commit
4515a67434c9e3e1627586629a1f2aba1a99aa6a.
Change-Id: I6c1107ab626758570a59dc6bf3e4228c70a57196
Nicolas Geoffray [Fri, 17 Jul 2015 09:55:53 +0000 (09:55 +0000)]
am
c3c0a06b: Merge "Use the quickened metadata to compile -QUICK opcodes."
* commit '
c3c0a06bea879741972add3dfc8099de729856a1':
Use the quickened metadata to compile -QUICK opcodes.
Nicolas Geoffray [Fri, 17 Jul 2015 09:15:56 +0000 (09:15 +0000)]
Merge "Use the quickened metadata to compile -QUICK opcodes."
Aart Bik [Fri, 17 Jul 2015 01:31:12 +0000 (01:31 +0000)]
am
913a737b: Merge "Test on (in)variant static and instance field arrays."
* commit '
913a737ba5774b3fec944190c13fcdf5b2257b6a':
Test on (in)variant static and instance field arrays.
Aart Bik [Fri, 17 Jul 2015 01:15:58 +0000 (01:15 +0000)]
Merge "Test on (in)variant static and instance field arrays."
Andreas Gampe [Fri, 17 Jul 2015 01:02:49 +0000 (01:02 +0000)]
am
caa2fe33: Merge "ART: Fix System.arraycopy"
* commit '
caa2fe33a8c4b3a5f7ffd0a6d6adb68337f8655f':
ART: Fix System.arraycopy
Aart Bik [Fri, 17 Jul 2015 00:40:44 +0000 (17:40 -0700)]
Test on (in)variant static and instance field arrays.
Rationale:
Ensure upcoming improved side effects analysis
results in valid optimizations only.
Bug:
22538329
Change-Id: I87e699853e914a0e42adfd1c4e4f9789781b65df
Andreas Gampe [Fri, 17 Jul 2015 00:51:11 +0000 (00:51 +0000)]
Merge "ART: Fix System.arraycopy"
Andreas Gampe [Fri, 17 Jul 2015 00:41:25 +0000 (17:41 -0700)]
ART: Fix System.arraycopy
We cannot use the same code for float+int and long+double. In debug
mode, this will fail.
Change-Id: Icf263626896a7b53e59685c474e77b4c3128ecd5
Nicolas Geoffray [Thu, 16 Jul 2015 18:28:18 +0000 (18:28 +0000)]
am
6d3d1e3d: Merge "Disable test while investigating."
* commit '
6d3d1e3d866a880b4df95ba96ed126c1723e3dd6':
Disable test while investigating.
Nicolas Geoffray [Thu, 16 Jul 2015 18:12:57 +0000 (18:12 +0000)]
Merge "Disable test while investigating."
Nicolas Geoffray [Thu, 16 Jul 2015 18:11:54 +0000 (19:11 +0100)]
Disable test while investigating.
Change-Id: Iea1a5b59582d2d12aba8ca5eb5eab3db3cc9dd59
Nicolas Geoffray [Thu, 16 Jul 2015 13:58:58 +0000 (14:58 +0100)]
Use the quickened metadata to compile -QUICK opcodes.
Change-Id: I28a8d68921698bea81f54c95cc6e4c6d2c03f2b4
Roland Levillain [Thu, 16 Jul 2015 14:09:02 +0000 (14:09 +0000)]
am
cced6ad1: Merge "Use (D)CHECK_ALIGNED more."
* commit '
cced6ad152cf8ec13f38f2210c1b8445919232d3':
Use (D)CHECK_ALIGNED more.
Nicolas Geoffray [Thu, 16 Jul 2015 13:56:05 +0000 (13:56 +0000)]
am
530f3185: Merge "Make oatdump see the new vmap table generated by dextodex."
* commit '
530f31858cfe019e48b5f0b2ecea2ad528e6f6c6':
Make oatdump see the new vmap table generated by dextodex.
Roland Levillain [Thu, 16 Jul 2015 13:55:28 +0000 (13:55 +0000)]
Merge "Use (D)CHECK_ALIGNED more."
Nicolas Geoffray [Thu, 16 Jul 2015 13:42:22 +0000 (13:42 +0000)]
Merge "Make oatdump see the new vmap table generated by dextodex."
Nicolas Geoffray [Thu, 16 Jul 2015 13:15:05 +0000 (14:15 +0100)]
Make oatdump see the new vmap table generated by dextodex.
Change-Id: I48f3fb7320e39c864f8fbc478f970b18358408ec
Nicolas Geoffray [Thu, 16 Jul 2015 13:01:34 +0000 (13:01 +0000)]
am
bca4d299: Merge "ART: Boolean simplifier fix"
* commit '
bca4d29975396b08f1d7357912065660b8007dd7':
ART: Boolean simplifier fix
Vladimir Marko [Thu, 16 Jul 2015 13:01:33 +0000 (13:01 +0000)]
am
8f861e39: Merge "ART: DCE should know that array-length can throw NPE"
* commit '
8f861e399c96abd8f1bc7c8c585d53b0904f371a':
ART: DCE should know that array-length can throw NPE
Nicolas Geoffray [Thu, 16 Jul 2015 12:41:02 +0000 (12:41 +0000)]
Merge "ART: Boolean simplifier fix"
Vladimir Marko [Thu, 16 Jul 2015 12:39:03 +0000 (12:39 +0000)]
Merge "ART: DCE should know that array-length can throw NPE"
Serguei Katkov [Tue, 14 Jul 2015 13:04:48 +0000 (19:04 +0600)]
ART: DCE should know that array-length can throw NPE
array-length can throw NPE so it should be taking into account.
Bug:
22521944
Change-Id: I6f961560ccbbf81f57f1c597828f2ee18e2c3054
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Roland Levillain [Thu, 16 Jul 2015 10:10:31 +0000 (10:10 +0000)]
am
fec9d09b: Merge "Fix the documentation of all-run-test-names."
* commit '
fec9d09bf7d2d54048b1df8e3c24a210e58dbc84':
Fix the documentation of all-run-test-names.
Roland Levillain [Thu, 16 Jul 2015 10:10:29 +0000 (10:10 +0000)]
am
00b5c617: Merge "Use art::MemoryRegion::{Load,Store}Bits more in art::CodeInfo."
* commit '
00b5c6175210e3372920086818a9d2aa15216eda':
Use art::MemoryRegion::{Load,Store}Bits more in art::CodeInfo.
Serguei Katkov [Wed, 15 Jul 2015 09:32:09 +0000 (15:32 +0600)]
ART: Boolean simplifier fix
Boolean simplifier should not remove condition instruction
if it has side effects.
Change-Id: I108b69ec05a49e5543ee956ad9c691b52179cf6c
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Roland Levillain [Thu, 16 Jul 2015 09:52:26 +0000 (10:52 +0100)]
Use (D)CHECK_ALIGNED more.
Change-Id: I9d740f6a88d01e028d4ddc3e4e62b0a73ea050af
Roland Levillain [Thu, 16 Jul 2015 09:02:47 +0000 (09:02 +0000)]
Merge "Fix the documentation of all-run-test-names."
Roland Levillain [Thu, 16 Jul 2015 08:56:28 +0000 (08:56 +0000)]
Merge "Use art::MemoryRegion::{Load,Store}Bits more in art::CodeInfo."
Mathieu Chartier [Thu, 16 Jul 2015 03:09:40 +0000 (03:09 +0000)]
am
a14e2e78: Merge "Move MarkObject to mark_sweep.cc"
* commit '
a14e2e780230b0c2f8e94445a4c8d21f19d447cf':
Move MarkObject to mark_sweep.cc
Evgenii Stepanov [Thu, 16 Jul 2015 03:09:38 +0000 (03:09 +0000)]
am
2e7ccf9a: Merge "Enable ASan annotations in ART based on macro setting."
* commit '
2e7ccf9aeb7212c96e2081b66f85b67856b8825a':
Enable ASan annotations in ART based on macro setting.
Mathieu Chartier [Thu, 16 Jul 2015 03:01:24 +0000 (03:01 +0000)]
Merge "Move MarkObject to mark_sweep.cc"
Mathieu Chartier [Thu, 16 Jul 2015 02:58:45 +0000 (19:58 -0700)]
Move MarkObject to mark_sweep.cc
Maybe fixes mac build.
Change-Id: I7c018922be8e159001498d30682435643bed1dfd
Evgenii Stepanov [Thu, 16 Jul 2015 02:54:54 +0000 (02:54 +0000)]
Merge "Enable ASan annotations in ART based on macro setting."
Evgenii Stepanov [Thu, 16 Jul 2015 00:40:14 +0000 (17:40 -0700)]
Enable ASan annotations in ART based on macro setting.
This is a quick hack to remove ASan annotations from SANITIZE_TARGET
build, because they are breaking everything - it looks like we forget
to clean redzones from a page before releasing it to the system, and
some unrelated code runs into them later.
We will add some way to control this from the build system later,
or just fix the underlying issue and re-enable by default.
Bug:
21785137
Change-Id: If79e2455e246dc39355f2758323b249ac20b6144
Mathieu Chartier [Wed, 15 Jul 2015 23:03:41 +0000 (23:03 +0000)]
am
34ac23dc: Merge "Address some GC comments"
* commit '
34ac23dc965bf6ca24dd2e9bb115f66ff1fc191e':
Address some GC comments
Mathieu Chartier [Wed, 15 Jul 2015 22:51:55 +0000 (22:51 +0000)]
Merge "Address some GC comments"
Mathieu Chartier [Wed, 15 Jul 2015 21:24:07 +0000 (14:24 -0700)]
Address some GC comments
Follow-up from:
https://android-review.googlesource.com/#/c/159650/
Change-Id: Id14f29b4ce5b70b63fcb3e74f8503ae60a3ae444
Mathieu Chartier [Wed, 15 Jul 2015 18:04:00 +0000 (18:04 +0000)]
am
e5abf070: Merge "Use SuspendAllInternal for FlipThreadRoots"
* commit '
e5abf0702555f9f4284a96e923f5c331561974e4':
Use SuspendAllInternal for FlipThreadRoots
Mathieu Chartier [Wed, 15 Jul 2015 17:52:46 +0000 (17:52 +0000)]
Merge "Use SuspendAllInternal for FlipThreadRoots"
Mathieu Chartier [Wed, 15 Jul 2015 17:24:16 +0000 (10:24 -0700)]
Use SuspendAllInternal for FlipThreadRoots
Fix FlipThreadRoots to wait until all the threads are suspended by
using SuspendAllInternal. Since running threads no longer hold the
mutator lock as shared held, doing an exclusive lock will not block
if the threads are not suspended. Also implemented MarkHeapReference
which is used to preserve soft references.
Fixes CC tests.
Change-Id: I4b059238f4249cf297e21ae918becd029fe26527
Roland Levillain [Wed, 15 Jul 2015 13:09:20 +0000 (14:09 +0100)]
Fix the documentation of all-run-test-names.
Change-Id: I160f57bb2244a79e5eaf5e87b9f0ac94747adcd1
Vladimir Marko [Wed, 15 Jul 2015 17:19:13 +0000 (17:19 +0000)]
am
12cfc600: Merge "Clean up after verifier changes wrt. conflict/undefined reg."
* commit '
12cfc600d21ebf97373be59f1bd538b68687b5bf':
Clean up after verifier changes wrt. conflict/undefined reg.
Vladimir Marko [Wed, 15 Jul 2015 17:06:39 +0000 (17:06 +0000)]
Merge "Clean up after verifier changes wrt. conflict/undefined reg."
Vladimir Marko [Wed, 15 Jul 2015 09:55:17 +0000 (10:55 +0100)]
Clean up after verifier changes wrt. conflict/undefined reg.
Remove unused path in RegType::Merge() and compare undefined
type as pointers. Reduce the number of edges to merge in
b_22331663.smali to just those that we really want to test.
Bug:
22331663
Change-Id: I16b83c4c97fd40be9dd246ef13ccda6e924eef60
Roland Levillain [Wed, 15 Jul 2015 13:30:26 +0000 (14:30 +0100)]
Use art::MemoryRegion::{Load,Store}Bits more in art::CodeInfo.
Change-Id: Id50fc029e83bf2c16bd991ea82acd3b355c29127
David Brazdil [Wed, 15 Jul 2015 15:36:31 +0000 (15:36 +0000)]
am
5c03f369: Merge "ART: Build SSA form when try/catch is present"
* commit '
5c03f3698f5e2e0d762e2e15ec00310b6cdab4fe':
ART: Build SSA form when try/catch is present
David Brazdil [Wed, 15 Jul 2015 15:22:01 +0000 (15:22 +0000)]
Merge "ART: Build SSA form when try/catch is present"
David Brazdil [Mon, 6 Jul 2015 10:48:53 +0000 (11:48 +0100)]
ART: Build SSA form when try/catch is present
This patch implements support for try/catch in the SsaBuilder.
Values of locals are propagated from throwing sites inside try
blocks to their respective catch blocks and phis ("catch phis")
are created when necessary.
Change-Id: I0736565c2c4ff3f9f0924b6e3a785a50023f875a
Nicolas Geoffray [Wed, 15 Jul 2015 10:17:40 +0000 (10:17 +0000)]
am
045da88b: Merge "Revert "Revert "Revert "Revert "Make dex2dex return a CompiledMethod after quickening."""""
* commit '
045da88bd0230ddf48aaf037b3d6c16fbb97ba65':
Revert "Revert "Revert "Revert "Make dex2dex return a CompiledMethod after quickening.""""
Vladimir Marko [Wed, 15 Jul 2015 10:17:38 +0000 (10:17 +0000)]
am
172c8f71: Merge "Avoid unexpected conversions to ArrayRef."
* commit '
172c8f71a866931728c389a46ae9e69bc4c04a13':
Avoid unexpected conversions to ArrayRef.
Nicolas Geoffray [Wed, 15 Jul 2015 09:47:00 +0000 (09:47 +0000)]
Merge "Revert "Revert "Revert "Revert "Make dex2dex return a CompiledMethod after quickening."""""
Nicolas Geoffray [Tue, 14 Jul 2015 10:37:54 +0000 (11:37 +0100)]
Revert "Revert "Revert "Revert "Make dex2dex return a CompiledMethod after quickening.""""
This reverts commit
ed6195a514e3253576af27ea9ba13038509d29ac.
Change-Id: Icb58854301e8982147cdebe3edf2e0d9e0a63a56
Vladimir Marko [Wed, 15 Jul 2015 08:59:43 +0000 (08:59 +0000)]
Merge "Avoid unexpected conversions to ArrayRef."
Andreas Gampe [Wed, 15 Jul 2015 06:02:41 +0000 (06:02 +0000)]
am
76ca8206: Merge "ART: Fix mac build"
* commit '
76ca82063ac62488fefb0b12d40026f4ebb2e198':
ART: Fix mac build
Andreas Gampe [Wed, 15 Jul 2015 05:53:03 +0000 (05:53 +0000)]
Merge "ART: Fix mac build"
Mathieu Chartier [Wed, 15 Jul 2015 01:13:26 +0000 (01:13 +0000)]
am
19315c12: Merge "Clean up GC callbacks to be virtual methods"
* commit '
19315c121047edcedf2828fea50f3208d799eca2':
Clean up GC callbacks to be virtual methods
Andreas Gampe [Wed, 15 Jul 2015 00:57:43 +0000 (17:57 -0700)]
ART: Fix mac build
Fix Clang assembler bugs introduced in commit
3031c8da0c5009183f770b005c245f9bf2a4d01b.
Change-Id: I460c7c1b8f4380244925d248b90c88239540527a
Mathieu Chartier [Wed, 15 Jul 2015 01:02:08 +0000 (01:02 +0000)]
Merge "Clean up GC callbacks to be virtual methods"
Mathieu Chartier [Wed, 15 Jul 2015 00:32:47 +0000 (00:32 +0000)]
am
70451aea: Merge "Change phony targets to set dalvik.vm.usejit properly"
* commit '
70451aea314de4743d2d15a48d33201a897c190d':
Change phony targets to set dalvik.vm.usejit properly
Mathieu Chartier [Wed, 15 Jul 2015 00:20:15 +0000 (00:20 +0000)]
Merge "Change phony targets to set dalvik.vm.usejit properly"
Mathieu Chartier [Tue, 14 Jul 2015 23:59:23 +0000 (16:59 -0700)]
Change phony targets to set dalvik.vm.usejit properly
Bug:
22408082
Change-Id: I87d75902fef9d695c034c27ea4e25448c23a6924
Mathieu Chartier [Mon, 13 Jul 2015 21:35:43 +0000 (14:35 -0700)]
Clean up GC callbacks to be virtual methods
Change-Id: Ia08034a4e5931c4fcb329c3bd3c4b1f301135735
Hiroshi Yamauchi [Tue, 14 Jul 2015 20:49:32 +0000 (20:49 +0000)]
am
8ae35889: Merge "Add ART_TEST_DEBUG_GC to help with debugging gc."
* commit '
8ae3588989ea99d8c60f885e3d830e6e0c87ff5f':
Add ART_TEST_DEBUG_GC to help with debugging gc.
Hiroshi Yamauchi [Tue, 14 Jul 2015 20:37:17 +0000 (20:37 +0000)]
Merge "Add ART_TEST_DEBUG_GC to help with debugging gc."
Hiroshi Yamauchi [Tue, 14 Jul 2015 19:20:30 +0000 (12:20 -0700)]
Add ART_TEST_DEBUG_GC to help with debugging gc.
ART_TEST_DEBUG_GC is meant to be used to easily set the GC
configuration to the one that currently needs debugging in a
continuous test.
Bug:
19894268
Change-Id: I566e44360fc4cd47b3448e194cc8c16c9f498b7f
Andreas Gampe [Tue, 14 Jul 2015 18:39:08 +0000 (18:39 +0000)]
am
34fcff08: Merge "ART: Remove art_quick_invoke_interface_trampoline"
* commit '
34fcff08a9ecc981f5967b9cc8111a5fac555282':
ART: Remove art_quick_invoke_interface_trampoline
Vladimir Marko [Tue, 14 Jul 2015 17:58:59 +0000 (18:58 +0100)]
Avoid unexpected conversions to ArrayRef.
Make single-parameter constructors explicit, except
for the default copy constructor.
Change-Id: If7c8db643b22a4c36e244830154fc699b39c9016
Andreas Gampe [Tue, 14 Jul 2015 18:26:04 +0000 (18:26 +0000)]
Merge "ART: Remove art_quick_invoke_interface_trampoline"
Andreas Gampe [Tue, 14 Jul 2015 03:11:06 +0000 (20:11 -0700)]
ART: Remove art_quick_invoke_interface_trampoline
The function has only been used by the IMT conflict resolution
trampoline for a while. Merge the two, which saves a branch.
Change-Id: I2f8c9204adf839ddc5459cc04e70d98f858110a1
Mathieu Chartier [Tue, 14 Jul 2015 17:20:45 +0000 (17:20 +0000)]
am
01c2b053: Merge "Fix mac build"
* commit '
01c2b053aa74d9bd461a29e0c252f7a8ce3f115a':
Fix mac build
Hiroshi Yamauchi [Tue, 14 Jul 2015 17:20:43 +0000 (17:20 +0000)]
am
68953ebf: Merge "Add an option to run art tests with strace."
* commit '
68953ebf53e3ef7e0fd2c5beadfa7a2437eebc60':
Add an option to run art tests with strace.
Mathieu Chartier [Tue, 14 Jul 2015 17:10:32 +0000 (17:10 +0000)]
Merge "Fix mac build"
Hiroshi Yamauchi [Tue, 14 Jul 2015 17:08:50 +0000 (17:08 +0000)]
Merge "Add an option to run art tests with strace."
Mathieu Chartier [Tue, 14 Jul 2015 17:05:45 +0000 (10:05 -0700)]
Fix mac build
Untested.
Change-Id: I1b7803f2fdcd7f509614aa9d3dce414e50a6119d
Roland Levillain [Tue, 14 Jul 2015 10:14:46 +0000 (10:14 +0000)]
am
d1665b7a: Merge "Revert "Revert "Fuse long and FP compare & condition on ARM64 in Optimizing."""
* commit '
d1665b7a689086ec5b33a69a05313c46ea1a95e4':
Revert "Revert "Fuse long and FP compare & condition on ARM64 in Optimizing.""
Roland Levillain [Tue, 14 Jul 2015 09:25:42 +0000 (09:25 +0000)]
Merge "Revert "Revert "Fuse long and FP compare & condition on ARM64 in Optimizing."""
Mathieu Chartier [Tue, 14 Jul 2015 02:02:35 +0000 (02:02 +0000)]
am
c6f3439b: Merge "ART: JNI thread state transition optimization"
* commit '
c6f3439b67962584cfb764133e192c3317f0e1fc':
ART: JNI thread state transition optimization
Mathieu Chartier [Tue, 14 Jul 2015 01:47:39 +0000 (01:47 +0000)]
Merge "ART: JNI thread state transition optimization"
Evgenii Stepanov [Tue, 14 Jul 2015 01:41:20 +0000 (01:41 +0000)]
am
e978aba2: Merge "Disable ASan on Thread::InstallImplicitProtection."
* commit '
e978aba24094cce90453ad3294b8c4536ee8e4b4':
Disable ASan on Thread::InstallImplicitProtection.
Evgenii Stepanov [Tue, 14 Jul 2015 01:28:04 +0000 (01:28 +0000)]
Merge "Disable ASan on Thread::InstallImplicitProtection."
Evgenii Stepanov [Tue, 14 Jul 2015 01:02:57 +0000 (01:02 +0000)]
am
0541502e: Merge "Generalize Valgrind annotations in ART to support ASan."
* commit '
0541502e6d9d0efa50aa333db32898a0664512c3':
Generalize Valgrind annotations in ART to support ASan.
Evgenii Stepanov [Mon, 13 Jul 2015 17:41:57 +0000 (10:41 -0700)]
Disable ASan on Thread::InstallImplicitProtection.
This function reads random stack locations and confuses ASan.
Bug:
21785137
Change-Id: Iaaee6032a651618e5275ab46e6e8f886df60a5d0
Evgenii Stepanov [Tue, 14 Jul 2015 00:47:06 +0000 (00:47 +0000)]
Merge "Generalize Valgrind annotations in ART to support ASan."
Evgenii Stepanov [Wed, 20 May 2015 19:30:59 +0000 (12:30 -0700)]
Generalize Valgrind annotations in ART to support ASan.
Also add redzones around non-fixed mem_map(s).
Also extend -Wframe-larger-than limit to enable arm64 ASan build.
Change-Id: Ie572481a25fead59fc8978d2c317a33ac418516c
Hiroshi Yamauchi [Tue, 14 Jul 2015 00:11:22 +0000 (17:11 -0700)]
Add an option to run art tests with strace.
Bug:
19894268
Change-Id: I0a315a30e4e7d6d497b21205dc2a2b18b2170328
Hiroshi Yamauchi [Mon, 13 Jul 2015 23:04:44 +0000 (23:04 +0000)]
am
5b1eea0a: Merge "Thread-local mark stacks for the CC collector."
* commit '
5b1eea0a6c90e6e82393cdb7337f0c2bb05637d9':
Thread-local mark stacks for the CC collector.
Yu Li [Mon, 29 Jun 2015 02:50:03 +0000 (10:50 +0800)]
ART: JNI thread state transition optimization
This patch improves the JNI performance by removing the explicit acquiring and
releasing the mutator lock when a thread state transits between suspended and
runnable states.
The functions responsible for changing the state were found to be the costliest
part of the JNI. Originally, a thread needs to acquire a shared mutator lock by
a CAS instruction when entering the runnable state and also needs to release
the lock by a CAS when entering the native state from runnable. This patch
removes these CAS operations when a thread state transits between suspended and
runnable. A thread in the runnable state is considered to have shared ownership
of the mutator lock and therefore transitions in and out of the runnable state
have associated implication on the mutator lock ownership. Meanwhile, a barrier
is added to control suspending all threads from running.
JNI transition overhead was reduced by 25% on IA platform and by 17% on ARM
platform by this patch, while it has little impact on GC pause time (measured
with "suspend all histogram").
Change-Id: Icee95d8ffff1bbfc95309a41cc48836536fec689
Signed-off-by: Yu, Li <yu.l.li@intel.com>
Signed-off-by: Haitao, Feng <haitao.feng@intel.com>
Signed-off-by: Lei, Li <lei.l.li@intel.com>
Hiroshi Yamauchi [Mon, 13 Jul 2015 22:51:39 +0000 (22:51 +0000)]
Merge "Thread-local mark stacks for the CC collector."
Hiroshi Yamauchi [Wed, 17 Jun 2015 01:29:23 +0000 (18:29 -0700)]
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
Christopher Ferris [Mon, 13 Jul 2015 20:51:35 +0000 (20:51 +0000)]
am
24db1bc5: Merge "Fix cfi information for x86."
* commit '
24db1bc55bf8fb3240690436a229352453ae75e1':
Fix cfi information for x86.
Christopher Ferris [Mon, 13 Jul 2015 20:39:09 +0000 (20:39 +0000)]
Merge "Fix cfi information for x86."
Christopher Ferris [Mon, 13 Jul 2015 19:21:00 +0000 (12:21 -0700)]
Fix cfi information for x86.
With this change, I can now enable debug malloc fully.
Bug:
19071092
(cherry picked from commit
9f66589f3ca6055501c99333a19b69349b8f8568)
Change-Id: I04d477d0294d67c5e3a9d9147889bdffb9086bd4
Andreas Gampe [Mon, 13 Jul 2015 19:28:32 +0000 (19:28 +0000)]
am
cc22d7cd: Merge "ART: Fix DexFileVerifier try_items OoO validation"
* commit '
cc22d7cde1062126aed90d314dcf675bd78e306e':
ART: Fix DexFileVerifier try_items OoO validation
Andreas Gampe [Mon, 13 Jul 2015 19:16:46 +0000 (19:16 +0000)]
Merge "ART: Fix DexFileVerifier try_items OoO validation"