OSDN Git Service
Mathieu Chartier [Sat, 22 Apr 2017 01:08:52 +0000 (01:08 +0000)]
Merge "More robust GC verification and corruption dumping"
Treehugger Robot [Sat, 22 Apr 2017 00:52:42 +0000 (00:52 +0000)]
Merge "ART: Refactor run-test 911"
Treehugger Robot [Fri, 21 Apr 2017 23:26:05 +0000 (23:26 +0000)]
Merge "Add suppression for process_vm_readv."
Andreas Gampe [Fri, 21 Apr 2017 23:04:27 +0000 (16:04 -0700)]
ART: Refactor run-test 911
Refactor the run-test in preparation for usage in CTS.
Move from the main thread into a dedicated thread. Add filtering
of threads.
Bug:
32072923
Test: m test-art-host
Change-Id: I3e0db90a240dea7154b3d1c6eb93a6f6cce97e21
Treehugger Robot [Fri, 21 Apr 2017 23:01:18 +0000 (23:01 +0000)]
Merge "run_build_test_target: Fix run-test not running for art-test[-javac]"
Mathieu Chartier [Tue, 18 Apr 2017 18:26:22 +0000 (11:26 -0700)]
More robust GC verification and corruption dumping
Added a test for GC heap corruption dumping, added more info to the
dump like adjacent bytes and card table.
Added heap corruption detection in
ConcurrentCopying::MarkNonMoving().
Bug:
37187694
Bug:
12687968
Test: mm test-art-host-gtest-verification_test -j20
Change-Id: I8c90e45796d0784265aa091b2f8082f0cfb62719
Josh Gao [Fri, 21 Apr 2017 21:13:54 +0000 (14:13 -0700)]
Add suppression for process_vm_readv.
On some hosts, valgrind complains about the intentional use of
process_vm_readv on invalid addresses.
Test: manually ran safe_copy_test on a VM with a 3.13 kernel
Test: m valgrind-test-art-target-gtest-safe_copy_test32 on angler
Test: m valgrind-test-art-host-gtest-safe_copy_test32 on 4.4 kernel
(but it wasn't failing in the first place)
Change-Id: Idd4ec19cc81176eb0b880ff1363bffe0c58ec904
Andreas Gampe [Fri, 21 Apr 2017 21:46:46 +0000 (21:46 +0000)]
Merge "ART: Fix Mac build"
Igor Murashkin [Fri, 21 Apr 2017 20:04:27 +0000 (13:04 -0700)]
run_build_test_target: Fix run-test not running for art-test[-javac]
Test: art/test/testrunner/run_build_test_target.py -j32 art-test
Change-Id: I8e9147fed3db88557376769db52602628754da46
Andreas Gampe [Fri, 21 Apr 2017 20:24:52 +0000 (13:24 -0700)]
ART: Fix Mac build
Another missing transitive include.
Test: m
Change-Id: I3e2691bcf8ddb38e48c7e32dbd9695459f4d9d16
Treehugger Robot [Fri, 21 Apr 2017 20:01:32 +0000 (20:01 +0000)]
Merge "Factor vector unary/binary shared code out into superclass."
Aart Bik [Fri, 21 Apr 2017 20:00:37 +0000 (20:00 +0000)]
Merge "ARM64: Improve SIMD LDR/STR."
Treehugger Robot [Fri, 21 Apr 2017 18:57:25 +0000 (18:57 +0000)]
Merge changes I6ff2d6f8,I8f60f116
* changes:
ART: Clean up art_field.h
ART: Clean up art_method.h
Treehugger Robot [Fri, 21 Apr 2017 18:56:17 +0000 (18:56 +0000)]
Merge changes from topic 'art_move_inline_method_anlyzer_to_compiler'
* changes:
ART: Clean up InlineMethodAnalyzer
ART: Move InlineMethodAnalyzer into compiler
Calin Juravle [Fri, 21 Apr 2017 18:41:23 +0000 (18:41 +0000)]
Merge "Ignore the optimized location passed to DexFile.loadDex()"
Aart Bik [Fri, 21 Apr 2017 16:42:01 +0000 (09:42 -0700)]
Factor vector unary/binary shared code out into superclass.
Test: test-art-target, test-art-host
Change-Id: I42770d9a9142f2e53d3b5bd60bd25593b2154a7c
Artem Serov [Wed, 19 Apr 2017 14:43:53 +0000 (15:43 +0100)]
ARM64: Improve SIMD LDR/STR.
Test: 640-checker-*-simd
Test: test-art-target, test-art-host
Change-Id: I2bcdef3f5cb7c0e7d1b3d02910fbf89ac694d89a
Andreas Gampe [Fri, 21 Apr 2017 03:07:21 +0000 (20:07 -0700)]
ART: Clean up InlineMethodAnalyzer
Remove dead code.
Test: m test-art-host
Change-Id: If86503fde2a77279a3169144bcae700101d81784
Andreas Gampe [Fri, 21 Apr 2017 02:43:21 +0000 (19:43 -0700)]
ART: Move InlineMethodAnalyzer into compiler
Move the infrastructure, which is now only used by the compiler.
Test: mmma art
Change-Id: I4a61e35f23736b226523d7349f49208ad852ad2f
Mathieu Chartier [Fri, 21 Apr 2017 16:34:44 +0000 (16:34 +0000)]
Merge "Store java_lang_Object_ in the flip callback"
Mathieu Chartier [Fri, 21 Apr 2017 02:28:54 +0000 (19:28 -0700)]
Store java_lang_Object_ in the flip callback
There was a race where the GC thread would not have is_marking =
true, and call
WellKnownClasses::ToClass(WellKnownClasses::java_lang_Object). This
meant that the returned class was maybe in the from-space for the
no image case. The fix was to move this decoding into the flip
callback since this callback is called before flipping any thread
roots.
Bug:
37531237
Bug:
12687968
Test: test-art-host
Change-Id: I9a09249e9c6ea2b3b124e957a9e4b61017869306
Andreas Gampe [Fri, 21 Apr 2017 05:53:58 +0000 (22:53 -0700)]
ART: Clean up art_field.h
Clean up the header. Fix up other headers including the -inl file,
in an effort to prune the include graph. Fix broken transitive
includes by making includes explicit.
Test: m
Change-Id: I6ff2d6f89b741d8188e19426eccf4743fec688fc
Andreas Gampe [Thu, 2 Feb 2017 00:46:28 +0000 (16:46 -0800)]
ART: Clean up art_method.h
Clean up the header. Fix up other headers including the -inl file,
in an effort to prune the include graph. Fix broken transitive
includes by making includes explicit. Introduce new -inl files
for method handles and reference visiting.
Test: source build/envsetup.sh && lunch aosp_angler-userdebug && mmma art
Test: source build/envsetup.sh && lunch aosp_mips64-userdebug && mmma art
Change-Id: I8f60f1160c2a702fdf3598149dae38f6fa6bc851
Treehugger Robot [Fri, 21 Apr 2017 14:24:57 +0000 (14:24 +0000)]
Merge "Fix verifier crash on abstract final class."
Vladimir Marko [Fri, 21 Apr 2017 12:31:41 +0000 (13:31 +0100)]
Fix verifier crash on abstract final class.
Remove a check for erroneous class. It should not matter to
the verifier whether the class is just resolved, initialized
or resolved erroneous. The check was also inherently racy
and could yield different behavior based on the timing of
the verification.
Test: 161-final-abstract-class
Test: testrunner.py --host
Bug:
37248840
Change-Id: Ic4d964050bbe52e3de4438ada9e75676956cb6b4
Treehugger Robot [Fri, 21 Apr 2017 11:17:46 +0000 (11:17 +0000)]
Merge "Reuse DexCache and ClassLoader handles in inliner."
Vladimir Marko [Thu, 20 Apr 2017 18:50:32 +0000 (19:50 +0100)]
Reuse DexCache and ClassLoader handles in inliner.
Measured memory usage with heaptrack for a large app:
Before:
bytes allocated in total (ignoring deallocations): 3.14GB
calls to allocation functions:
8130596
After:
bytes allocated in total (ignoring deallocations): 3.12GB
calls to allocation functions:
7750377
Test: testrunner.py --host
Bug:
34053922
Change-Id: I1ad7aaffccc6527cd4f409ca8fca75bab8d7439a
Nicolas Geoffray [Fri, 21 Apr 2017 07:59:53 +0000 (07:59 +0000)]
Merge "Handle catch phis in code sinking."
Treehugger Robot [Fri, 21 Apr 2017 00:49:23 +0000 (00:49 +0000)]
Merge changes If234ff55,I2d83fc46,I5ad78a15
* changes:
Be able to run jvmti-stress on RI
Do native method bind in jvmti-stress
Agent libraries need to be searched for JNI functions
Alex Light [Thu, 20 Apr 2017 22:54:25 +0000 (15:54 -0700)]
Be able to run jvmti-stress on RI
This is useful for testing.
When running on RI no class redefinition is performed.
Test: ./test/run-test --dev --jvm --jvmti-stress 001-HelloWorld
Test: ./test/run-test --dev --jvm --jvmti-stress 902
Test: ./test/run-test --dev --jvm --jvmti-stress 986
Change-Id: If234ff553bf136312c5128d03b02b28f4ff94e3d
Alex Light [Thu, 20 Apr 2017 20:35:05 +0000 (13:35 -0700)]
Do native method bind in jvmti-stress
Extend the jvmti-stress test suite to intercept the NativeMethodBind
event for every method.
Also fix small issue where we tried to add a local reference to a null
thread in ti_method.cc if we had an event trigger before VMInit.
Test: ./test/testrunner/testrunner.py --host --jvmti-stress -j40
Bug:
37432636
Change-Id: I2d83fc460b18edf035ed7296b8e2b06cff3671e5
Alex Light [Thu, 20 Apr 2017 16:15:08 +0000 (09:15 -0700)]
Agent libraries need to be searched for JNI functions
This makes agent libraries the option of last resort for native
method implementations. This will allow one to not need to manually
link all native methods in an agent library.
Bug:
37522517
Bug:
37432636
Test: ./test.py --host -j40
Change-Id: I5ad78a15e7e2799d2a877c5d603342899e2a1bd1
Treehugger Robot [Thu, 20 Apr 2017 22:43:05 +0000 (22:43 +0000)]
Merge "Improve VerifyNoFromSpaceRefsObjectVisitor logging"
Mathieu Chartier [Thu, 20 Apr 2017 20:31:39 +0000 (13:31 -0700)]
Improve VerifyNoFromSpaceRefsObjectVisitor logging
Remove read barriers in PrettyTypeOf to prevent recursive failures.
Pass down holder and offset information to
VerifyNoFromSpaceRefsFieldVisitor.
Test: test-art-host
Bug:
37531237
Change-Id: I704ec18ebecfc1ca2982b38f67a2f0788e59dfe9
Aart Bik [Thu, 20 Apr 2017 17:28:00 +0000 (17:28 +0000)]
Merge "ARM64: Support MultiplyAccumulate for SIMD."
Mathieu Chartier [Thu, 20 Apr 2017 16:47:51 +0000 (16:47 +0000)]
Merge changes from topic 'partial_tlab'
* changes:
Fix some gtests
Use partial TLAB regions
Nicolas Geoffray [Thu, 20 Apr 2017 14:19:46 +0000 (15:19 +0100)]
Handle catch phis in code sinking.
When the user of an instruction we want to sink is a catch
phi, we should not look at predecessors (which don't map 1-1
for catch phis), but can only look at its dominator.
bug:
37247890
Test: 647-sinking-catch
Change-Id: Ib64bd6f95d3ef45c394137e76819fa8d7d3d960a
Treehugger Robot [Thu, 20 Apr 2017 15:16:44 +0000 (15:16 +0000)]
Merge "Add descriptor validation to ClassLinker::FindClass()."
Vladimir Marko [Thu, 20 Apr 2017 10:26:03 +0000 (11:26 +0100)]
Add descriptor validation to ClassLinker::FindClass().
And add tests for odd signatures passed to JNI GetFieldID().
Previously, passing the signature "java/lang/String" instead
of "Ljava/lang/String;" would call the class loader with the
dot name java.lang.String and the class loader would find
that class only to fail the DescriptorEquals() check back
in ClassLinker::FindClass().
Test: 647-jni-get-field-id
Bug:
33577836
Bug:
37156832
Change-Id: I6612a272ec24b0d54b728fd35003e9c24a7e2e95
Nicolas Geoffray [Thu, 20 Apr 2017 12:32:48 +0000 (12:32 +0000)]
Merge "Fix fault_handler with heap poisoning."
Nicolas Geoffray [Thu, 20 Apr 2017 11:50:13 +0000 (12:50 +0100)]
Fix fault_handler with heap poisoning.
test: test-art-host
Change-Id: Ifeb3d5ff4cfdcb703d5874bca90c9c1438d86f08
Treehugger Robot [Thu, 20 Apr 2017 11:01:32 +0000 (11:01 +0000)]
Merge "Vdex: Workaround arrays with erroneous component type."
Nicolas Geoffray [Wed, 19 Apr 2017 12:50:34 +0000 (13:50 +0100)]
Vdex: Workaround arrays with erroneous component type.
The assignability DCHECK is only reliable when classes are not
erroneous. For arrays whose component type could be erroneous,
the verifier can join types even if they're not assignable.
bug:
33770646
Test: verifier_deps_test
Change-Id: I4ec1b12b2e2c7d5b57b51a64aea381f951a38dcd
Mathieu Chartier [Thu, 20 Apr 2017 06:54:33 +0000 (23:54 -0700)]
Fix some gtests
Forgot to retest.
Test: test-art-host-gtest
Change-Id: I72b07c3872079452a3a01db4fbd2c4ee0060f294
Mathieu Chartier [Wed, 19 Apr 2017 00:46:23 +0000 (17:46 -0700)]
Use partial TLAB regions
Instead of having 256K TLAB regions, have 256K TLABs split into
16K regions. This fixes pathological cases with multithreaded
allocation that caused many GCs since each thread reserving
256K would often bump the counter past the GC start threshold. Now
threads only bump the counter every 16K.
System wide results (average of 5 samples on N6P):
Total GC time 60s after starting shell: 45s -> 24s
Average .Heap PSS 60s after starting shell: 57900k -> 58682k
BinaryTrees gets around 5% slower, numbers are noisy.
Boot time: 13.302 -> 12.899 (average of 100 runs)
Bug:
35872915
Bug:
36216292
Test: test-art-host
(cherry picked from commit
bf48003fa32d2845f2213c0ba31af6677715662d)
Change-Id: I5ab22420124eeadc0a53519c70112274101dfb39
Treehugger Robot [Thu, 20 Apr 2017 03:04:32 +0000 (03:04 +0000)]
Merge "base: make SafeCopy work on older Linux kernels."
Josh Gao [Wed, 19 Apr 2017 22:44:20 +0000 (15:44 -0700)]
base: make SafeCopy work on older Linux kernels.
process_vm_readv is documented to not split transfer across a single
iovec element, but this appears to not be the case for the newer
kernels we have on our workstations.
Split up transfers across page boundaries, to avoid this. This has the
side effect of limiting the maximum size of a transfer, but 64 pages
ought to be enough for anybody.
Test: safe_copy_test on 3.13.0-101-generic (failing before)
Test: safe_copy_test on 4.4.0-66-generic (still passing)
Change-Id: I6a6dbf0cd2aeaa7eab39f6d41285d46ebd760e30
Artem Serov [Mon, 10 Apr 2017 16:41:46 +0000 (17:41 +0100)]
ARM64: Support MultiplyAccumulate for SIMD.
Test: test-art-host, test-art-target.
Change-Id: I06af8415e15352d09d176cae828163cbe99ae7a7
Colin Cross [Wed, 19 Apr 2017 22:54:19 +0000 (22:54 +0000)]
Merge "Remove obsolete rules to build runtests"
Treehugger Robot [Wed, 19 Apr 2017 22:52:57 +0000 (22:52 +0000)]
Merge changes from topic 'art_run_test_912_cts_refactor'
* changes:
ART: Refactor run-test 912 (3/3)
ART: Refactor run-test 912 (2/3)
ART: Refactor run-test 912 (1/3)
Andreas Gampe [Wed, 19 Apr 2017 20:45:25 +0000 (13:45 -0700)]
ART: Refactor run-test 912 (3/3)
Add run-test Main.
Bug:
32072923
Test: m
Test: art/test/testrunner/testrunner.py -b --host -t 912
Change-Id: I4a4bbe587937d9b87eab77af1a5f05fd4df7f0d4
Andreas Gampe [Wed, 19 Apr 2017 20:43:43 +0000 (13:43 -0700)]
ART: Refactor run-test 912 (2/3)
Move the refactored run-test into place.
Bug:
32072923
Test: m
Change-Id: I170cd1465a3afce3f48a9cbad864eaa5d9fdaacc
Andreas Gampe [Wed, 19 Apr 2017 20:37:48 +0000 (13:37 -0700)]
ART: Refactor run-test 912 (1/3)
Refactor the test for CTS. Break out the ART-specific part. Move
the rest into the regular layout. Move class events to their own
thread, and report them on the Java side. Use InMemoryDexClassLoader
for classloaders to avoid explicit files.
Bug:
32072923
Test: none
Change-Id: I80e27cc9c21646bbecd1de1a246f583a0d388e05
Josh Gao [Wed, 19 Apr 2017 20:22:45 +0000 (20:22 +0000)]
Merge "fault_handler: hopefully fix darwin build."
Josh Gao [Wed, 19 Apr 2017 20:20:19 +0000 (13:20 -0700)]
fault_handler: hopefully fix darwin build.
Test: none
Change-Id: I08adf266c6287a289d213a0b1fa854f223fec72d
David Sehr [Wed, 19 Apr 2017 20:00:50 +0000 (20:00 +0000)]
Merge "Revert "Add dexdiag_test""
Treehugger Robot [Wed, 19 Apr 2017 19:57:35 +0000 (19:57 +0000)]
Merge changes Ie3d5e176,Ic1fbb885,I10bafcff
* changes:
fault_handler: use SafeCopy to verify the validity of ArtMethod.
fault_handler: use SafeCopy to decode x86 instruction length.
base: add SafeCopy.
David Sehr [Wed, 19 Apr 2017 19:44:08 +0000 (19:44 +0000)]
Revert "Add dexdiag_test"
This reverts commit
2120ad43acc0ab0fa74c151069948ef9698c009f.
Change-Id: Icdb42e47eb2f099cbfbd302477ad6614bb8524f1
Treehugger Robot [Wed, 19 Apr 2017 19:31:06 +0000 (19:31 +0000)]
Merge "Implement can_generate_native_method_bind capability"
Treehugger Robot [Wed, 19 Apr 2017 19:19:00 +0000 (19:19 +0000)]
Merge "Implement halving add idiom (with checker tests)."
Treehugger Robot [Wed, 19 Apr 2017 18:15:58 +0000 (18:15 +0000)]
Merge "MIPS64: java.lang.System.arraycopy() for copying char[] to char[]."
Mingyao Yang [Wed, 19 Apr 2017 17:59:32 +0000 (17:59 +0000)]
Merge "Fix CHA test failures under some configurations."
Josh Gao [Tue, 18 Apr 2017 03:10:29 +0000 (20:10 -0700)]
fault_handler: use SafeCopy to verify the validity of ArtMethod.
Reimplement ArtMethod::GetDeclaringClassUnchecked and VerifyClassClass
in terms of SafeCopy, to be able to safely verify the validity of
putative ArtMethods in FaultManager::IsInGeneratedCode.
Bug: http://b/
30836730
Test: m test-art-host
Change-Id: Ie3d5e176ea569cedcefd320e2480a1e1e496a53a
Aart Bik [Thu, 13 Apr 2017 00:09:20 +0000 (17:09 -0700)]
Implement halving add idiom (with checker tests).
Rationale:
First of several idioms that map to very efficient SIMD instructions.
Note that the is-zero-ext and is-sign-ext are general-purpose utilities
that will be widely used in the vectorizer to detect low precision
idioms, so expect that code to be shared with many CLs to come.
Test: test-art-host, test-art-target
Change-Id: If7dc2926c72a2e4b5cea15c44ef68cf5503e9be9
Treehugger Robot [Wed, 19 Apr 2017 17:13:11 +0000 (17:13 +0000)]
Merge "Allow dex2oat to handle relative paths."
Alex Light [Tue, 18 Apr 2017 22:20:38 +0000 (15:20 -0700)]
Implement can_generate_native_method_bind capability
This capability lets one observe and even replace the implementations
of native methods when they are bound.
Test: ./test.py --host -j40
Bug:
37432636
Change-Id: I2432a8e4da1a677e8011ce495296f4ab9f42eb3e
David Sehr [Wed, 19 Apr 2017 16:37:46 +0000 (16:37 +0000)]
Merge "Add dexdiag_test"
Treehugger Robot [Wed, 19 Apr 2017 16:14:17 +0000 (16:14 +0000)]
Merge "ART: Refactor run-test 924"
Treehugger Robot [Wed, 19 Apr 2017 16:13:40 +0000 (16:13 +0000)]
Merge "ART: Filter more thread roots"
Nicolas Geoffray [Wed, 19 Apr 2017 12:31:42 +0000 (12:31 +0000)]
Merge "Record class status after verification."
Vladimir Marko [Wed, 19 Apr 2017 11:32:49 +0000 (11:32 +0000)]
Merge "ARM64: Heap poisoning for link-time Baker CC read barrier thunks."
Treehugger Robot [Wed, 19 Apr 2017 10:13:12 +0000 (10:13 +0000)]
Vladimir Marko [Tue, 18 Apr 2017 12:55:13 +0000 (13:55 +0100)]
ARM64: Heap poisoning for link-time Baker CC read barrier thunks.
And fix running out of scratch registers for HArraySet
with large constant index and a reference to poison.
Test: Nexus 6P boots with heap poisoning enabled.
Test: testrunner.py --target with heap poisoning enabled on Nexus 6P.
Bug:
29516974
Bug:
30126666
Bug:
36141117
Change-Id: Ifb38f4a0e23a2963468772f34f294febfc340b8c
Sebastien Hertz [Wed, 19 Apr 2017 09:26:54 +0000 (09:26 +0000)]
Merge "Reduce timeout of JDWP tests"
Sebastien Hertz [Mon, 27 Mar 2017 09:35:54 +0000 (11:35 +0200)]
Reduce timeout of JDWP tests
This CL sets the timeout of JDWP tests to 10s (instead of the default
timeout of 60s).
This should save up time for continuous testing (~ 3min on host).
Indeed, some tests do wait until the timeout to detect that no reply
(or no event) has been received.
Test: art/tools/run-jdwp-tests.sh --mode=host --variant=X64
Change-Id: Id03c8a1d629e6da551cf8eb405cc79754a363fe0
Nicolas Geoffray [Wed, 19 Apr 2017 09:01:46 +0000 (09:01 +0000)]
Merge "Revert "Invoke dex2oat explictly before dalvikvm""
Nicolas Geoffray [Wed, 19 Apr 2017 09:01:29 +0000 (09:01 +0000)]
Revert "Invoke dex2oat explictly before dalvikvm"
Fails on device with:
07-13 04:35:49.410 24424 24424 F dex2oat : instruction_set_features.cc:58] static std::unique_ptr<const InstructionSetFeatures> art::InstructionSetFeatures::FromVariant(art::InstructionSet, const std::string &, std::string *) unimplemented None
Bug:
36824842
This reverts commit
4806f7afc92b1812cefaab291235d01773732400.
Change-Id: I34a23fb69b0284e6d70ec0a54d5ada9e107ffeb7
Nicolas Geoffray [Wed, 19 Apr 2017 08:36:24 +0000 (09:36 +0100)]
Record class status after verification.
The class status was recorded when doing vdex verification, or
any compilation (quickening or optimizing), but not when only doing
verification.
bug:
37446669
Test:compiler_driver_test
Change-Id: Id027c7a9776ed651de570a0f3417c969c8cff9cd
Sebastien Hertz [Tue, 18 Apr 2017 16:28:51 +0000 (18:28 +0200)]
Follow-up to
70d60275cc2860bde50e5f9c5b151e94f745ae14
Test: make -j build-art-host
Change-Id: Id6e81518041bd64dec537ff3da2fa049d39b27d0
Sebastien Hertz [Wed, 19 Apr 2017 07:23:36 +0000 (07:23 +0000)]
Merge "Always check result of Thread::ModifySuspendCount"
Calin Juravle [Wed, 19 Apr 2017 04:25:37 +0000 (21:25 -0700)]
Ignore the optimized location passed to DexFile.loadDex()
This ensures that apps don't trigger dex2oat to locations
that are not recognized (anymore) by the runtime.
The background compilation job will takes care of optimizing
the dex files loaded via DexClassLoader.
Test: m test-art-host
Bug:
36824842
Change-Id: I6883740407203b4aa9511e7d15a8201db3df1168
Mathieu Chartier [Wed, 19 Apr 2017 02:41:02 +0000 (02:41 +0000)]
Merge "Call mirror::CallSite::VisitRoots"
Jeff Hao [Thu, 6 Apr 2017 00:05:46 +0000 (17:05 -0700)]
Allow dex2oat to handle relative paths.
During installation at compile time, the PackageManager is passing
shared libraries to dex2oat with -classpath. For split apps, we want the
splits to have the proper dependencies, and are now passing previous
parts of the split apk as shared libraries as we compile them all. These
apks are staged in a temp dir during compilation, so we pass a relative
path for them instead.
Since PackageManager can now pass relative paths to dex2oat as shared
libraries, dex2oat has an added --classpath-dir switch to specify the
directory to use for relative class paths. At runtime when checking
shared libraries, we use oat file functionality to resolve relative paths
to determine if the paths match.
Bug:
34169257
Test: cts-tradefed run singleCommand cts -d --module
CtsAppSecurityHostTestCases -t android.appsecurity.cts.SplitTests
Merged-In: I9667f0069c8d12e94598f8a78888d3855d870824
(cherry-picked from commit
f79ac83a8c18b0bd81aafc9c8823f6bed35d8847)
Change-Id: I8e4703fdd4bfeb94f982e93abb7eb0cd71060fce
Mathieu Chartier [Tue, 18 Apr 2017 23:14:19 +0000 (16:14 -0700)]
Call mirror::CallSite::VisitRoots
Needed to visit CallSite static class root.
Test: test/run-test --no-patchoat --relocate --host --64 --interpreter --gdb 952
Bug:
33191717
Change-Id: I1fad3df8ad810c5c7905afadfa25cdc0901ef035
Calin Juravle [Tue, 18 Apr 2017 23:20:16 +0000 (23:20 +0000)]
Merge "Invoke dex2oat explictly before dalvikvm"
Andreas Gampe [Wed, 12 Apr 2017 15:42:16 +0000 (08:42 -0700)]
ART: Refactor run-test 924
Move testing to a dedicated thread to have a known thread name.
Change event reporting to be Java-side. Use Java-side thread list
(from Thread.getAllStackTraces) as comparison for minimal expected
set of threads.
Bug:
32072923
Test: art/test/testrunner/testrunner.py -b --host -t 924
Change-Id: I238ffc202e42eea8d1788137715188d3dfbcc8fb
David Sehr [Fri, 14 Apr 2017 22:26:09 +0000 (15:26 -0700)]
Add dexdiag_test
Tests that dexdiag runs on the current process and returns with a
non-error status for a variety of command line options.
Bug:
35800981
Test: make test-art-target-gtest-dexdiag_test
Change-Id: Ib6f21a99ddec270cf8026a6123b028fe4b3fb840
Treehugger Robot [Tue, 18 Apr 2017 22:42:58 +0000 (22:42 +0000)]
Merge "Fix obsolete method change check."
Calin Juravle [Wed, 12 Apr 2017 02:04:28 +0000 (19:04 -0700)]
Invoke dex2oat explictly before dalvikvm
The goal is to stop relying on dex2oat being run when dex files are
loaded.
Test: ./out/host/linux-x86/bin/art --profile -Ximage:$PWD/out/host/linux-x86/framework/core.art -Xusejit:true -Xcompiler-option --compiler-filter=speed -Xcompiler-option --compiler-backend=Optimizing -verbose:oat -Djava.library.path=$PWD/out/x86_64/host/linux-x86/lib64 -cp $PWD/generated/benchmarks.dex benchmarks.ExoPlayerBench.java.ExoPlayerBench
Bug:
36824842
Change-Id: I9f4a1384cdc91502edea08402ee984c57ff8c37d
Josh Gao [Tue, 18 Apr 2017 18:18:56 +0000 (11:18 -0700)]
fault_handler: use SafeCopy to decode x86 instruction length.
Prevent a crash in the x86 fault handler when pc points to garbage and
we try to figure out its instruction length.
Bug: http://b/
30836730
Test: m test-art-host
Change-Id: Ic1fbb8856e30140f0e1ebc9caccf9559e88ff137
Josh Gao [Tue, 18 Apr 2017 01:31:26 +0000 (18:31 -0700)]
base: add SafeCopy.
Add a function that uses process_vm_readv on Linux to safely
dereference pointers without the risk of segfault.
Bug: http://b/
30836730
Test: safe_copy_test on host
Change-Id: I10bafcffe2172e17b00f65455d1dd6a08aa631d7
Andreas Gampe [Tue, 18 Apr 2017 20:59:09 +0000 (13:59 -0700)]
ART: Filter more thread roots
Also filter interface classes that may be held by the JIT.
Bug:
31385354
Test: art/test/testrunner/testrunner.py --host -b -t 913
Change-Id: I129ab8c28e398d779d9d43b03358aa54a9a14c8c
Alex Light [Tue, 18 Apr 2017 20:03:31 +0000 (13:03 -0700)]
Fix obsolete method change check.
We were incorrectly checking for changes in the obsolete-method map.
This could cause issues if a class was redefined multiple times.
Bug:
37475600
Test: ./test.py --host -j40
Test: cts-tradefed run cts-dev --module CtsJvmtiRedefineClassesHostTestCases
Change-Id: Icf39d5154c0e48461405b700bf1fa20830195fc1
Treehugger Robot [Tue, 18 Apr 2017 18:25:01 +0000 (18:25 +0000)]
Merge "Make ART build/test configurations use the CC collector by default."
Mathieu Chartier [Tue, 18 Apr 2017 18:24:00 +0000 (18:24 +0000)]
Merge "Differentiate between native alloc and normal background GC"
Treehugger Robot [Tue, 18 Apr 2017 18:21:41 +0000 (18:21 +0000)]
Merge "ART: Make less lock-level noise on abort"
Mathieu Chartier [Mon, 17 Apr 2017 22:24:43 +0000 (15:24 -0700)]
Differentiate between native alloc and normal background GC
Added a new GC cause kGcCauseForNativeAllocBackground.
Bug:
35872915
Test: test-art-host
Change-Id: I94e17f8bd53af29f2862b9910bd8abd2df97e229
Mathieu Chartier [Tue, 18 Apr 2017 17:14:00 +0000 (17:14 +0000)]
Merge "Use correct type for GetValueFromShadowFrame"
Roland Levillain [Tue, 18 Apr 2017 17:06:25 +0000 (17:06 +0000)]
Merge "Use WARN_UNUSED consistently in ART."
Mathieu Chartier [Tue, 18 Apr 2017 03:12:29 +0000 (20:12 -0700)]
Use correct type for GetValueFromShadowFrame
The field type is not necessarily the input type for boxed
primitives. If the field type is < 32 bits, it means there will be
partial object pointer in the JValue. If a conversion check is
later needed in GetUnboxedTypeAndValue, it will crash. The fix is
to use the PTypes.
Bug:
37446461
Test: test-art-host
Change-Id: I0c4b405f0c13910523b98a87ef12b9f302a5e241