OSDN Git Service
Przemyslaw Szczepaniak [Mon, 1 Aug 2016 10:58:42 +0000 (10:58 +0000)]
Merge \"Fix art::ArchTest::FinalizeSetup not being called.\"
am:
6e5e3b2e91
Change-Id: I2791958a7a77d62390805037e789be48fa58e23f
Przemyslaw Szczepaniak [Mon, 1 Aug 2016 10:54:37 +0000 (10:54 +0000)]
Merge "Fix art::ArchTest::FinalizeSetup not being called."
Przemyslaw Szczepaniak [Mon, 25 Jul 2016 16:31:06 +0000 (17:31 +0100)]
Fix art::ArchTest::FinalizeSetup not being called.
CommonRuntimeTestImpl::SetUp() is calling FinalizeSetup. Since
CommonRuntimeTestImpl::FinalizeSetup is not virtual (it's virtual
one step higher in class hierarchy in CommonRuntimeTestBase), overridden
version in ArchTest was never used. This is causing ArchTest to
fail with openjdk8u60 version of java.lang.reflect (it's calling
Class#getDeclaredField in clinit, which fails on 32 bit
version because of different pointer sizes [arch_test forces
64-bit ISA])
Bug:
28666126
Test: make -j 32 test-art-host-gtest
Change-Id: Ief370f5b18ef787575ac0f88ecbe17ebbf037542
David Brazdil [Mon, 1 Aug 2016 08:42:05 +0000 (08:42 +0000)]
Merge \"ART: Fix RegTypeCache for instance field declaring class\"
am:
bffecdbb50
Change-Id: I1c4beef69e286097a859d8855296a0c56826dcbb
David Brazdil [Mon, 1 Aug 2016 08:39:04 +0000 (08:39 +0000)]
Merge "ART: Fix RegTypeCache for instance field declaring class"
Aart Bik [Sat, 30 Jul 2016 05:19:26 +0000 (05:19 +0000)]
Merge \"Fix for interpreter crash on new instance of class\"
am:
0f290d764d
Change-Id: Ie237c079eee92df36143b32cdb175a4f52719e34
Mathieu Chartier [Sat, 30 Jul 2016 05:19:24 +0000 (05:19 +0000)]
Merge \"Revert \"Revert \"Use try lock to fix class resolution race\"\"\"
am:
0af088d126
Change-Id: If34912dd115472f4fb2a84dd82a0b1d91c488a06
Richard Uhler [Sat, 30 Jul 2016 05:19:21 +0000 (05:19 +0000)]
Merge \"Create OatFileAssistant::OatFileInfo inner class.\"
am:
3d733104c9
Change-Id: Iddfadebb0b90ea9ce8376a5a52ec8fc7c2e386f5
Aart Bik [Sat, 30 Jul 2016 02:53:25 +0000 (02:53 +0000)]
Merge "Fix for interpreter crash on new instance of class"
Treehugger Robot [Sat, 30 Jul 2016 02:10:00 +0000 (02:10 +0000)]
Merge "Revert "Revert "Use try lock to fix class resolution race"""
Mathieu Chartier [Fri, 29 Jul 2016 23:26:01 +0000 (16:26 -0700)]
Revert "Revert "Use try lock to fix class resolution race""
Fix possible deadlock in EnsureResolved caused by interaction with
GC. Since we were sleeping while holding the mutator lock, it could
block thread suspension. This would deadlock if the thread that
had locked h_class is already suspended since we would spin forever
and not make progress.
Bug:
27417671
Bug:
30500547
Test: test-art-host ART_TEST_GC_STRESS=true
This reverts commit
69bf969c055c31a75d17ea92aeee756042678114.
Change-Id: Id8750df065dc3b9ef7dc874f2eb2cc2c58e5d1eb
Richard Uhler [Sat, 30 Jul 2016 00:10:18 +0000 (00:10 +0000)]
Merge "Create OatFileAssistant::OatFileInfo inner class."
Aart Bik [Tue, 26 Jul 2016 00:52:22 +0000 (17:52 -0700)]
Fix for interpreter crash on new instance of class
Rationale:
Fuzz testing found divergences between the compiler and interpreter
which turned out to be caused by calling instance on java.lang.Class
(this worked for compiler but crashed interpeter). Since RI does not
allow this construct, solution is to force interpreter in this
unlikely case and throw run time exception like RI. This fixes
two cases found with fuzz testing. CL also includes
fail-before/pass-after test.
Test: 600-verifier-fails
BUG=
29758098
Change-Id: Ie80f7758def44e6655d28fec4c10c34ffa0fd60b
Mathieu Chartier [Fri, 29 Jul 2016 21:30:37 +0000 (21:30 +0000)]
Merge \"Revert \"Use try lock to fix class resolution race\"\"
am:
7707777f06
Change-Id: I1cd0bea29e785d45fd9b140fc2209826ff316c54
Treehugger Robot [Fri, 29 Jul 2016 21:23:49 +0000 (21:23 +0000)]
Merge "Revert "Use try lock to fix class resolution race""
Mathieu Chartier [Fri, 29 Jul 2016 20:06:45 +0000 (20:06 +0000)]
Revert "Use try lock to fix class resolution race"
This reverts commit
a704eda0078989a73cac111ed309aca50d2e289b.
Bug:
27417671
Bug:
30500547
Change-Id: Ieea05236b9e61c722660cd9497c9d55d13ccd010
Matthew Gharrity [Fri, 29 Jul 2016 19:05:56 +0000 (19:05 +0000)]
Merge \"Add arena stack and priority queue type aliases\"
am:
ea159431cd
Change-Id: Ia4db08fe011ee7e1eaadc8f0f221f71f146dbdfb
Hiroshi Yamauchi [Fri, 29 Jul 2016 19:05:54 +0000 (19:05 +0000)]
Merge \"Revert \"Scan immune spaces using mod union tables.\"\"
am:
b94ea458e7
Change-Id: I07be24b3ac8a58d041e8bf09857cb1209ab89c2c
Treehugger Robot [Fri, 29 Jul 2016 18:57:26 +0000 (18:57 +0000)]
Merge "Add arena stack and priority queue type aliases"
Treehugger Robot [Fri, 29 Jul 2016 18:52:16 +0000 (18:52 +0000)]
Merge "Revert "Scan immune spaces using mod union tables.""
Colin Cross [Fri, 29 Jul 2016 18:10:20 +0000 (18:10 +0000)]
Merge \"ART: remove ART_JIT makefile variable\"
am:
8481f6390a
Change-Id: Id4cf81cfe8547ea03f09a2d1e4d592d58e9725a7
Colin Cross [Fri, 29 Jul 2016 17:57:57 +0000 (17:57 +0000)]
Merge "ART: remove ART_JIT makefile variable"
Hiroshi Yamauchi [Fri, 29 Jul 2016 17:41:01 +0000 (17:41 +0000)]
Revert "Scan immune spaces using mod union tables."
This reverts commit
8256da35feac0ba7589fcd4b692a4b9a936679a4.
Test failing.
Change-Id: I391dcbdba19c6f6313e06075b0a69ea406c7c50e
Matthew Gharrity [Fri, 29 Jul 2016 16:13:33 +0000 (09:13 -0700)]
Add arena stack and priority queue type aliases
These will be used in the graph coloring register allocator.
Test: m test-art-host
Change-Id: I4d3d063ae5a02e697f07fc8212f391b5347270e5
Nicolas Geoffray [Fri, 29 Jul 2016 14:34:09 +0000 (14:34 +0000)]
Merge \"Pass the right class loader when inlining.\"
am:
4c4d6f42cf
Change-Id: I8568aff8cf2323e43e0d15441827ded3edd417e1
Nicolas Geoffray [Fri, 29 Jul 2016 14:28:44 +0000 (14:28 +0000)]
Merge "Pass the right class loader when inlining."
Colin Cross [Thu, 28 Jul 2016 23:03:13 +0000 (16:03 -0700)]
ART: remove ART_JIT makefile variable
The ART_JIT variable isn't used (and was never used?).
Test: mma, make test-art-host, make test-art-target
Change-Id: Ie6463c3c13fab43504f3c60fd5a15f696e2cf481
Richard Uhler [Tue, 19 Apr 2016 22:39:37 +0000 (15:39 -0700)]
Create OatFileAssistant::OatFileInfo inner class.
To share code reused for getting info about both the odex and oat files.
Test: oat file assistant tests.
Change-Id: Ifcc48e0ac481899285e39e3b02f3ade180e38728
Mathieu Chartier [Thu, 28 Jul 2016 22:56:42 +0000 (22:56 +0000)]
Merge \"Avoid read barrier for IntArray::GetArrayClass\"
am:
533d684038
Change-Id: I6f2843bd1b2683fa4e120baa8abf80f6a377580c
Mathieu Chartier [Thu, 28 Jul 2016 22:27:34 +0000 (22:27 +0000)]
Merge "Avoid read barrier for IntArray::GetArrayClass"
Mathieu Chartier [Thu, 28 Jul 2016 18:02:38 +0000 (11:02 -0700)]
Avoid read barrier for IntArray::GetArrayClass
Changed the code use Mark instead of read barrier, this showed an
existing lock violation and possible deadlock which was fixed.
Prevent DCHECK failure from the assert.
Bug:
30469265
Test: test-art-host with CC
Change-Id: I275f953f06f6d13262043fc62eb88dca0356465a
Mathieu Chartier [Thu, 28 Jul 2016 18:22:37 +0000 (18:22 +0000)]
Merge \"Use try lock to fix class resolution race\"
am:
85c4a4b8c9
Change-Id: Ie267436199e2bd504b8635f62f368bd84bda1897
Mathieu Chartier [Thu, 28 Jul 2016 18:12:56 +0000 (18:12 +0000)]
Merge "Use try lock to fix class resolution race"
Hiroshi Yamauchi [Thu, 28 Jul 2016 17:30:04 +0000 (17:30 +0000)]
Merge \"Scan immune spaces using mod union tables.\"
am:
ccee3363e3
Change-Id: I3930d2d589a750f8b6bbf97503fd7a0a6e06feeb
Hiroshi Yamauchi [Thu, 28 Jul 2016 17:24:43 +0000 (17:24 +0000)]
Merge "Scan immune spaces using mod union tables."
Roland Levillain [Thu, 28 Jul 2016 17:03:31 +0000 (17:03 +0000)]
Merge \"Disable CheckSwapUsage test with read barriers on x86.\"
am:
5fc9ddef31
Change-Id: Ib3d6cd1a84663842581f0eb0799cb19df7c41465
Roland Levillain [Thu, 28 Jul 2016 16:54:49 +0000 (16:54 +0000)]
Merge "Disable CheckSwapUsage test with read barriers on x86."
Roland Levillain [Thu, 28 Jul 2016 16:27:00 +0000 (16:27 +0000)]
Merge \"Remove two ReadBarrierMarkRegX entrypoints.\"
am:
d22b69a127
Change-Id: I1e4a311c28af62aac97d699b67bba01de185c9d1
Roland Levillain [Thu, 28 Jul 2016 16:20:19 +0000 (16:20 +0000)]
Merge "Remove two ReadBarrierMarkRegX entrypoints."
Nicolas Geoffray [Thu, 28 Jul 2016 02:49:14 +0000 (03:49 +0100)]
Pass the right class loader when inlining.
Otherwise, method and type resolution can resolve to the wrong
things and as a side effect update the dex cache with wrong data.
bug:
30403437
test:./art/test/run-test --host --jit --dev --no-prebuild 613
(cherry picked from commit
0a210d9b108c87c0e7c1d430a92ce6fc89790c95)
Change-Id: I8fdca96fccae079c8e99b8e86e7b6935acfce89d
David Brazdil [Wed, 27 Jul 2016 14:29:25 +0000 (15:29 +0100)]
ART: Fix RegTypeCache for instance field declaring class
For bytecode instruction:
iget(-*) ClassB->field:type
where the resolved field is actually declared in ClassA (ClassB
extends ClassA), MethodVerifier would create a RegType representing
ClassA but cache it under the descriptor "ClassB".
This is a bug but does not have any implications on correctness
because earlier resolution of ClassB (part of IGET handling) creates
another cache entry with the "ClassB" descriptor. Because the latter,
wrong entry is always imprecise (ClassA cannot be final because ClassB
extends it), either the earlier entry will be discovered or neither
of them will be a match.
Descriptor was replaced with the correct one and a DCHECK added when
creating a RegType to make sure the descriptor matches.
Bug:
30458218
Change-Id: I19e1bdd5dd79e5eac558122a06b9128d0a5c021f
Test: m test-art-host-run-test
Test: art/test/run-test --host 800-smali
Roland Levillain [Thu, 28 Jul 2016 15:37:28 +0000 (16:37 +0100)]
Disable CheckSwapUsage test with read barriers on x86.
This test does not produce the expected results on
some x86 systems when read barriers are enabled.
Also remove unused TEST_DISABLED_FOR_READ_BARRIER macro
definition.
Test: m test-art-host-gtest
Bug:
29259363
Bug:
12687968
Change-Id: If7c124226b32c10425725e62bb684150aba108ab
Vladimir Marko [Thu, 28 Jul 2016 14:16:23 +0000 (14:16 +0000)]
Merge \"ARM64: Add comment to mterp int-to-long.\"
am:
e3051bf607
Change-Id: I50373e031406dad9bc56129983e47d761fde4f26
Vladimir Marko [Thu, 28 Jul 2016 14:10:54 +0000 (14:10 +0000)]
Merge "ARM64: Add comment to mterp int-to-long."
Tobias Thierer [Thu, 28 Jul 2016 13:54:54 +0000 (13:54 +0000)]
Merge \"Add ProcessBuilderTest#testRedirectInherit() to known failures\"
am:
93aa03c913
Change-Id: I0bb1d0af6e1a76bf03678dc1d090e53b9d118907
Tobias Thierer [Thu, 28 Jul 2016 13:49:20 +0000 (13:49 +0000)]
Merge "Add ProcessBuilderTest#testRedirectInherit() to known failures"
Vladimir Marko [Thu, 28 Jul 2016 13:04:18 +0000 (14:04 +0100)]
ARM64: Add comment to mterp int-to-long.
Test: Build for Nexus 9.
Change-Id: I649e71fc1cdc2a4a103159bf72ceeb005231e66f
Alexey Frunze [Thu, 28 Jul 2016 12:51:48 +0000 (12:51 +0000)]
Merge \"MIPS32: Improve string and class loads\"
am:
f9136b631a
Change-Id: I0d5950875daa51ed819cc62cfdbf3c0c9543f58c
Vladimir Marko [Thu, 28 Jul 2016 12:43:29 +0000 (12:43 +0000)]
Merge "MIPS32: Improve string and class loads"
Vladimir Marko [Thu, 28 Jul 2016 09:08:34 +0000 (09:08 +0000)]
Merge \"ARM64: More mterp improvements.\"
am:
f59f597690
Change-Id: Iaadad83a4052394e0c9d4d4db8fe0125813eb137
Vladimir Marko [Thu, 28 Jul 2016 09:00:59 +0000 (09:00 +0000)]
Merge "ARM64: More mterp improvements."
Andreas Gampe [Thu, 28 Jul 2016 05:59:24 +0000 (05:59 +0000)]
Merge \"ART: Use old operator<< for MemBarrierKind\"
am:
7cef37575c
Change-Id: I352ffba82a4554942ff5b3f2dfb7a8a1e3cce790
Treehugger Robot [Thu, 28 Jul 2016 05:35:28 +0000 (05:35 +0000)]
Merge "ART: Use old operator<< for MemBarrierKind"
Andreas Gampe [Thu, 28 Jul 2016 04:25:41 +0000 (21:25 -0700)]
ART: Use old operator<< for MemBarrierKind
To fix assumptions in the tests.
Test: m test-art-host
Change-Id: Ie2e738524ee8f75a3c41730f6a1449dab490e535
Alexey Frunze [Tue, 19 Jul 2016 22:00:40 +0000 (15:00 -0700)]
MIPS32: Improve string and class loads
Tested:
- MIPS32 Android boots in QEMU
- test-art-host-gtest
- test-art-target-run-test-optimizing in QEMU, on CI20
- test-art-target-gtest on CI20
Change-Id: I70fd5d5267f8594c3b29d5a4ccf66b8ca8b09df3
Andreas Gampe [Thu, 28 Jul 2016 02:13:11 +0000 (02:13 +0000)]
Merge \"ART: Delete old compiler_enums.h\"
am:
6369394e75
Change-Id: Ibb7e4f1351b8196ffa0b655b0ec91922e263fc20
Treehugger Robot [Thu, 28 Jul 2016 01:54:06 +0000 (01:54 +0000)]
Merge "ART: Delete old compiler_enums.h"
Mathieu Chartier [Thu, 28 Jul 2016 01:27:07 +0000 (01:27 +0000)]
Merge \"Reduce unnecessary read barriers in GC\"
am:
74d19f13d2
Change-Id: Ic604b9201f4d23c7b230813ba884f1e0fb83320a
Mathieu Chartier [Thu, 28 Jul 2016 01:05:07 +0000 (01:05 +0000)]
Merge "Reduce unnecessary read barriers in GC"
Andreas Gampe [Thu, 28 Jul 2016 00:53:11 +0000 (17:53 -0700)]
ART: Delete old compiler_enums.h
Holdover from the Quick days. Move the two enums that are still
used closer to the actual users (and prune no longer used cases).
Test: m test-art-host
Change-Id: I88aa49961a54635788cafac570ddc3125aa38262
Hiroshi Yamauchi [Wed, 27 Jul 2016 21:08:19 +0000 (14:08 -0700)]
Scan immune spaces using mod union tables.
It's faster to scan the immune spaces using the mod union tables (gray
objects on dirty pages) than the live bitmaps (gray objects).
The immune space scan time goes from ~13ms down to ~10ms in the
testWidgetsContainerFling test on angler at 1 GHz.
Change-Id: I0914d7bdb50cbf8a49c859070a3501b48eb79f3e
Test: N9 boot, art tests, Ritz EAAC.
Bug:
29516968
Bug:
29517059
Bug:
12687968
Mathieu Chartier [Wed, 13 Jul 2016 16:53:35 +0000 (09:53 -0700)]
Use try lock to fix class resolution race
There was some possible deadlocks related to EnsureResolved caused by
acquiring an object lock.
Scenario:
Thread 1 acquires lock on obj1
Thread 1 begins to resolve / initialize class1
Thread 1 blocks since it sees that class1 is already being resolved and
gets preempted before it can acquire the object lock on class1
Thread 2 finishes resolving and initializing class1 and locks class1
Thread 2 blocks attempting to lock obj1
Thread 1 blocks attempting to lock class1
Deadlock
Fixed the deadlock by changing EnsureResolved to use a try lock for the
unresolved case.
Added a test.
Test: Device boot, test-art-host, monitor_test
Bug:
27417671
Change-Id: Ic6e1c3ca6f45490cf8a7bf8e137dee71ac83ff64
Goran Jakovljevic [Wed, 27 Jul 2016 21:30:11 +0000 (21:30 +0000)]
Merge \"MIPS32: Block callee save fp registers in debuggable\"
am:
1853a70e6e
Change-Id: I6ae521add5fa8186b63306fd41d5f70ca882a967
Treehugger Robot [Wed, 27 Jul 2016 21:06:44 +0000 (21:06 +0000)]
Merge "MIPS32: Block callee save fp registers in debuggable"
Mathieu Chartier [Wed, 27 Jul 2016 17:45:47 +0000 (10:45 -0700)]
Reduce unnecessary read barriers in GC
Removed read barrier from IsUnprocessed, DequeuePendingReference,
EnqueueReference, and a few other places.
Hard to tell if GC time goes down.
EAAC:
Before GC slow path count: 254857
After GC slow path count: 1005
Bug:
30162165
Bug:
12687968
Test: test-art-host, volantis boot with CC
Change-Id: Ic2add3a9b1e1d7561b0b167f2218b10f8dbff76c
Jeff Hao [Wed, 27 Jul 2016 18:47:58 +0000 (18:47 +0000)]
Merge \"Fix profiling output to properly display class info.\"
am:
9755c262df
Change-Id: I417529769b10bd7693461c90f0306881158332a6
Treehugger Robot [Wed, 27 Jul 2016 18:38:39 +0000 (18:38 +0000)]
Merge "Fix profiling output to properly display class info."
Vladimir Marko [Tue, 26 Jul 2016 15:38:11 +0000 (16:38 +0100)]
ARM64: More mterp improvements.
Several simple improvements:
- use EOR for neg-float and neg-double,
- use SBFX instead of LSL+ASR for const/4,
- handle long-to-int as move,
- use LDRSW for int-to-long,
- remove bogus CMP from iput-quick,
- use indexed load/store for iget/iput-wide-quick,
- use CBZ, CBNZ, TBZ, TBNZ for if-eqz, if-nez, if-gez and
if-ltz, respectively. (The short range of TBZ/TBNZ
requires emitting the footer before alternate stubs.)
Test: Run ART test suite on Nexus 9 with the interpreter.
Change-Id: I2e65a7cee3d3e2128b870d98cf6157c21f57d607
Jeff Hao [Wed, 27 Jul 2016 17:35:03 +0000 (10:35 -0700)]
Fix profiling output to properly display class info.
The profiler stores class def indexes, not type ids.
Change-Id: Ieec9374a2ba381387ed444f376922478183145f8
Tobias Thierer [Wed, 27 Jul 2016 15:00:59 +0000 (16:00 +0100)]
Add ProcessBuilderTest#testRedirectInherit() to known failures
This test does fairly low level operations that previously exposed
other kernel issues. So far it has been observed failing 1/10 times
on an Android L kernel but never on CTS. Therefore, adding to list
of known failures. testRedirectErrorStream_outputAndErrorAreMerged
has not yet been observed to fail but is similar; it may need to be
added to the list if it fails in future.
Test: cts-tradefed run cts -c libcore.java.lang.ProcessBuilderTest
Bug:
27464570
Change-Id: I5d67f67099e66cba4d75d9bf621609cd2d88d58a
Mathieu Chartier [Tue, 26 Jul 2016 20:16:57 +0000 (20:16 +0000)]
Merge \"Add missing filter cards to zygote mod union table\"
am:
93afc5f20a
Change-Id: I40b355ebdabc4d53661836156b8106fa2c003fbd
Mathieu Chartier [Tue, 26 Jul 2016 19:54:28 +0000 (19:54 +0000)]
Merge "Add missing filter cards to zygote mod union table"
Mathieu Chartier [Tue, 26 Jul 2016 00:48:52 +0000 (17:48 -0700)]
Add missing filter cards to zygote mod union table
Without filtering the cards, every object in the zygote is grayed
during the GC. This was deleted in a PS of previous CL.
GrayAllDirtyImmuneObjects goes from 1.974ms to 376.464us for CC on
N9 maps. This happens during the pause. This CL also fixes regression
in zygote PSS.
Bug:
29516968
Bug:
12687968
Change-Id: I42014e78b1de3ce9b2eefa3bd32f0d24e2ff71c6
Goran Jakovljevic [Fri, 22 Jul 2016 07:46:43 +0000 (09:46 +0200)]
MIPS32: Block callee save fp registers in debuggable
This fixes tests 454-get-vreg and 457-regs in debuggable.
Additional changes in LocationsBuilderMIPS::HandleFieldGet/Set
to prevent situations when running out of available fp registers.
Test: mma -j2 ART_TEST_RUN_TEST_DEBUGGABLE=true test-art-target-run-test
Change-Id: Iaad6a6e414ff747b39209780c21aeddc225a04c1
Mathieu Chartier [Mon, 25 Jul 2016 23:32:14 +0000 (23:32 +0000)]
Merge \"Improve CC handling for immune objects\"
am:
e92730cbc5
Change-Id: Ie0226a28ebfc44595e614c3c942fba82797ecfa0
Treehugger Robot [Mon, 25 Jul 2016 23:27:42 +0000 (23:27 +0000)]
Merge "Improve CC handling for immune objects"
Aart Bik [Mon, 25 Jul 2016 23:18:13 +0000 (23:18 +0000)]
Merge \"Remove redundant 601 test, it\'s all in 600.\"
am:
90187c9858
Change-Id: Ibdc01b2f1047bca176c39942e5e80097706ad570
Aart Bik [Mon, 25 Jul 2016 23:13:18 +0000 (23:13 +0000)]
Merge "Remove redundant 601 test, it's all in 600."
Igor Murashkin [Mon, 25 Jul 2016 23:12:41 +0000 (23:12 +0000)]
Merge \"runtime: Refactor asm_support to be auto-generated (mostly)\"
am:
10656de47c
Change-Id: Ida3192ed82ad2f835eae6f49c46f013ed012a77f
Treehugger Robot [Mon, 25 Jul 2016 23:06:39 +0000 (23:06 +0000)]
Merge "runtime: Refactor asm_support to be auto-generated (mostly)"
Mathieu Chartier [Fri, 22 Jul 2016 17:47:45 +0000 (10:47 -0700)]
Improve CC handling for immune objects
Currently we reduce ram for immune objects by racing agianst the
mutators to try and finish processing them before the mutators
change many objects to gray. However there is still a window of time
where the mutator can dirty immune pages by changing the lock words
to gray. These pages remain dirty for the lifetime of the app.
This CL changes uses the FlipCallback pause to gray all of the
immune objects that have a dirty card. Once these objects are all
gray we don't to gray any more objects in the immune spaces since
these objects are the only ones that may reference non immune
objects.
Also only scan objects that are gray when scanning immune spaces to
reduce scanning time.
System wide PSS after boot on N9, before:
61668 kB: .art mmap
11249 kB: .Zygote
After:
36013 kB: .art mmap
12251 kB: .Zygote
Results are better than demonstrated since there are more apps
running after.
Maps PSS / Private Dirty, before:
.art mmap 3703 3116
.Zygote 577 480
After:
.art mmap 1655 1092
.Zygote 476 392
System server before:
.art mmap 4453 3956
.Zygote 849 780
After:
.art mmap 2326 1748
.Zygote 640 564
EAAC:
Before:
ScanImmuneSpaces takes 669.434ms GC time
Scores: 718, 761, 753 average 744
GC time: 4.2s, 4.35s, 4.3s average 4.28s
After:
ScanImmuneSpaces takes 138.328ms GC time
Scores: 731, 730, 704 average 722
GC time: 3.92s, 3.83s, 3.85s average 3.87s
Additional GC pause time is 285us on Maps on N9.
TODO: Reduce this pause time.
Test: N9 booting, test-art-host, EAAC all run with CC
Bug:
29516968
Bug:
12687968
Change-Id: I584b10d017547b321f33eb23fb5d64372af6f69c
Andreas Gampe [Mon, 25 Jul 2016 22:34:09 +0000 (22:34 +0000)]
Merge \"ART: Add pointer-size template to some reflection functions\"
am:
3023890d94
Change-Id: I4310ad3ef62f7645ff82427512f0ef975f386341
Treehugger Robot [Mon, 25 Jul 2016 22:24:42 +0000 (22:24 +0000)]
Merge "ART: Add pointer-size template to some reflection functions"
Igor Murashkin [Fri, 22 Jul 2016 22:59:16 +0000 (15:59 -0700)]
runtime: Refactor asm_support to be auto-generated (mostly)
Usage:
* If the defines are no longer up to date, re-run generate-asm-support
* To add a new field:
--- Edit one of the offset_ or constant def files.
--- Rebuild cpp-define-generator and re-run generate-asm-support
Change-Id: I772430fcf1ad9af40898ebb453848f8412612386
TODO: Integrate this into the build somehow
TODO: Account for 32 vs 64-bit and read barrier vs no read barrier
Aart Bik [Mon, 25 Jul 2016 22:12:24 +0000 (15:12 -0700)]
Remove redundant 601 test, it's all in 600.
Rationale:
Nicolas, I don't understand why you duplicated this test.
Since all (and now more) is in 600, removing this clone.
Change-Id: Ibc8b47549f054972f07b53b1554e7ab4dc0cb33e
Alex Light [Mon, 25 Jul 2016 21:40:38 +0000 (21:40 +0000)]
Merge \"Make java 8 run-tests runnable on the RI again.\"
am:
659ad8fe6b
Change-Id: I73852191af8517db26adf0f7b744441853c05187
Treehugger Robot [Mon, 25 Jul 2016 21:31:19 +0000 (21:31 +0000)]
Merge "Make java 8 run-tests runnable on the RI again."
Richard Uhler [Mon, 25 Jul 2016 20:22:59 +0000 (20:22 +0000)]
Merge \"Launch ahat server before processing the heap dump.\"
am:
0abe10a59b
Change-Id: I051ad88d1460d129a5eb65fc36a6e28354bbc251
Treehugger Robot [Mon, 25 Jul 2016 20:18:25 +0000 (20:18 +0000)]
Merge "Launch ahat server before processing the heap dump."
Andreas Gampe [Mon, 25 Jul 2016 20:06:04 +0000 (13:06 -0700)]
ART: Add pointer-size template to some reflection functions
The unstarted runtime may run code for a different pointer size,
even when no transaction is active (e.g., during startup). To
retain performance when the runtime is up and executing under
normal conditions, add a template parameter and use sizeof(void*)
in places where it is adequate.
For maintainability, it is necessary to drop the default for
the transaction template parameter. Implicit conversions from
bool to size_t may lead to incorrect code and hard to diagnose
problems. So instead ensure that all callers must give all
template parameter values.
Test: m test-art-host
Change-Id: I3076883422c8553ede4de5642409c5684a5a9aa8
Alex Light [Mon, 25 Jul 2016 19:05:26 +0000 (19:05 +0000)]
Merge \"Fix stream-tracing with default methods\"
am:
38be534337
Change-Id: Ibad99838d15d0b87ea5ba1fe897f27d4ba83f447
Treehugger Robot [Mon, 25 Jul 2016 18:44:11 +0000 (18:44 +0000)]
Merge "Fix stream-tracing with default methods"
Wojciech Staszkiewicz [Mon, 25 Jul 2016 17:58:19 +0000 (17:58 +0000)]
Merge \"Make static helper methods member functions of OptimizingCompiler class\"
am:
a69e790ad9
Change-Id: Iaf23b0f1163ac836a3a4e4c5319517388e6cfa62
Aart Bik [Mon, 25 Jul 2016 17:53:51 +0000 (17:53 +0000)]
Merge "Make static helper methods member functions of OptimizingCompiler class"
Alex Light [Tue, 19 Jul 2016 18:21:32 +0000 (11:21 -0700)]
Fix stream-tracing with default methods
Test: Ran mma ART_TEST_TRACE=true ART_TEST_TRACE_STREAM=true -j40 test-art-host
Bug:
30102284
Bug:
30286605
Change-Id: I12f2534bc2d42a7504e6c1972c4cfdda2f77286f
Andreas Gampe [Mon, 25 Jul 2016 17:37:01 +0000 (17:37 +0000)]
Merge \"Revert \"Revert \"ART: Add dex2oat swap usage test\"\"\"
am:
edbecee66f
Change-Id: I3321270cf3746b172208b628dbddc968db1c5482
Treehugger Robot [Mon, 25 Jul 2016 17:27:55 +0000 (17:27 +0000)]
Merge "Revert "Revert "ART: Add dex2oat swap usage test"""
Mathieu Chartier [Mon, 25 Jul 2016 16:52:59 +0000 (16:52 +0000)]
Merge \"Add fast path to arm64 READ_BARRIER macro\"
am:
a71ad9a2d3
Change-Id: I0bebdeed40c436e59f294e2c2b94c7ac6085b374
Mathieu Chartier [Mon, 25 Jul 2016 16:44:33 +0000 (16:44 +0000)]
Merge "Add fast path to arm64 READ_BARRIER macro"
Andreas Gampe [Mon, 25 Jul 2016 15:27:35 +0000 (08:27 -0700)]
Revert "Revert "ART: Add dex2oat swap usage test""
Now correctly ignores the target (but with enough infrastructure
to introduce this some day).
This reverts commit
ec743ffd47ac9d3c10a449926d78c2eb51e5208e.
Bug:
29259363
Test: m test-art-host-gtest-dex2oat_test
Test: m test-art-target-gtest-dex2oat_test (shamu)
Change-Id: I11b4e755bc8cb1e2eea29cd006e8df67df632c00