OSDN Git Service
Narayan Kamath [Fri, 15 Apr 2016 14:57:28 +0000 (15:57 +0100)]
OpenJdkJVM: Fix JVM_Lseek
Use lseek64 and remove unnecessary TEMP_FAILURE_RETRY.
bug:
28192631
Change-Id: Ic27aa6c03122b29d53e75ead56870a8cb7867fd3
Narayan Kamath [Fri, 15 Apr 2016 14:31:00 +0000 (14:31 +0000)]
Merge "Track removal of String hash functions."
Narayan Kamath [Wed, 13 Apr 2016 13:17:44 +0000 (14:17 +0100)]
Track removal of String hash functions.
The number of virtual methods dropped by one. The change to the
field counting merits some explanation, with the change to OpenJDK
we got rid of two 16 bit fields and added a 32 bit field (which the
companion change removed), so things continued to work happily.
This change brings the number of 16 bit fields down to zero.
Also fixes 100-reflect2, which iterates over all methods in j.l.String.
bug:
28082128
Change-Id: If402a372c010b673ef54949e13815b4ae9d3fb99
Nicolas Geoffray [Fri, 15 Apr 2016 13:50:32 +0000 (13:50 +0000)]
Merge "Properly initialize the is_osr_method_being_compiled_ flag."
Nicolas Geoffray [Fri, 15 Apr 2016 13:16:34 +0000 (14:16 +0100)]
Properly initialize the is_osr_method_being_compiled_ flag.
bug:
27939339
(cherry picked from commit
7982f347f5a32db79a0bf03354857a9f7f1f1948)
Change-Id: I4b3a78dac338af51bf7c9ecb7a48d90aad370938
David Brazdil [Fri, 15 Apr 2016 09:37:17 +0000 (09:37 +0000)]
Merge "Rename test whose name was too long for some configs"
David Brazdil [Fri, 15 Apr 2016 09:35:04 +0000 (10:35 +0100)]
Rename test whose name was too long for some configs
Bug:
27615840
Bug:
27624868
Change-Id: Id15382753a65a16d438abf514104233441444c8d
Vladimir Marko [Fri, 15 Apr 2016 09:23:47 +0000 (09:23 +0000)]
Merge "Fix CFI fixups for long branches on MIPS."
Vladimir Marko [Fri, 15 Apr 2016 08:59:16 +0000 (08:59 +0000)]
Merge "Use dex cache from compilation unit in RTP."
Richard Uhler [Thu, 14 Apr 2016 21:19:56 +0000 (21:19 +0000)]
Merge "Disable stripped-dex test on target."
Richard Uhler [Thu, 14 Apr 2016 20:31:30 +0000 (13:31 -0700)]
Disable stripped-dex test on target.
Because the targets don't have the required zip command.
Bug:
27599626
Change-Id: I5ba075165d96d831a4b8e0912cff1319071c60a5
Andreas Gampe [Thu, 14 Apr 2016 20:09:00 +0000 (20:09 +0000)]
Merge "ART: Make iget receiver mismatch hard verifier error"
Andreas Gampe [Thu, 14 Apr 2016 17:55:04 +0000 (10:55 -0700)]
ART: Make iget receiver mismatch hard verifier error
If the classes are resolved, and still not match, this should be
a verify error.
Bug:
28187158
Change-Id: I89c996ae15865674f21cf32ec378d37bac34861b
Vladimir Marko [Thu, 14 Apr 2016 17:07:55 +0000 (18:07 +0100)]
Use dex cache from compilation unit in RTP.
Avoid calling the costly ClassLinker::FindDexCache() from
reference type propagation when the dex cache from the
compilation unit will do, i.e. almost always. Compiling
the Nexus 5 boot image on host under perf(1) shows that
the FindDexCache() hits drop from about 0.2% to almost
nothing, though enabling inlining for the boot image will
increase it a bit to 0.03% due to unavoidable calls from
the inliner.
Also clean up the ScopedObjectAccess usage a bit.
Change-Id: I426a5f9f5da9e64fad2ea57654240789a48d3871
Richard Uhler [Thu, 14 Apr 2016 16:11:40 +0000 (16:11 +0000)]
Merge "Restore fallback behavior in the no-image stripped-dex case."
David Brazdil [Thu, 14 Apr 2016 15:59:02 +0000 (15:59 +0000)]
Merge "ART: Save a bit of memory in production LICM"
David Brazdil [Thu, 14 Apr 2016 15:56:40 +0000 (15:56 +0000)]
Merge "ART: Update DCHECKs in SsaLivenessAnalysis::AddBackEdgeUses"
David Brazdil [Thu, 14 Apr 2016 15:36:15 +0000 (16:36 +0100)]
ART: Save a bit of memory in production LICM
LICM uses a bit vector to DCHECK that inner loops are visited before
outer loops. Allocate the bit vector only if kIsDebugBuild.
Change-Id: Ic2641607ebe55ad8974de2ebe03973f0bf182e42
David Brazdil [Thu, 14 Apr 2016 12:47:24 +0000 (13:47 +0100)]
ART: Update DCHECKs in SsaLivenessAnalysis::AddBackEdgeUses
Graph linearization in the presence of irreducible loops is not
guaranteed to generate a linear order where all blocks of a loop are
adjacent, first block is the header and last block is one of the back
edges.
These assumptions are made when inserting synthesized uses at the back
edges to aid the register allocator. Not meeting them will result in
the algorithm's early termination and back-edge uses not being added.
This patch updates the DCHECKs so the compiler does not fail in such
circumstances.
Bug:
27615840
Bug:
27624868
Change-Id: I63632e8819ea3644d5c6fdfea00b66128bf22c24
Nicolas Geoffray [Thu, 14 Apr 2016 13:34:36 +0000 (13:34 +0000)]
Merge "Fix initialization of field after conflicting merges."
Nicolas Geoffray [Thu, 14 Apr 2016 13:17:29 +0000 (14:17 +0100)]
Fix initialization of field after conflicting merges.
Change-Id: I5c887d5cbcd94f51c3566e964d217a906dbaa9ea
Nicolas Geoffray [Thu, 14 Apr 2016 12:39:05 +0000 (12:39 +0000)]
Merge "Don't use JACK alpha anymore."
Nicolas Geoffray [Thu, 14 Apr 2016 12:32:01 +0000 (13:32 +0100)]
Don't use JACK alpha anymore.
Change-Id: Id37d90446be5d63cb0cf0131e34b562147e88335
Vladimir Marko [Thu, 14 Apr 2016 10:48:16 +0000 (10:48 +0000)]
Merge "Fix copy-paste nit"
Vladimir Marko [Thu, 14 Apr 2016 10:30:39 +0000 (10:30 +0000)]
Merge "Use dex cache from compilation unit in HInstructionBuilder."
Vladimir Marko [Thu, 14 Apr 2016 10:27:34 +0000 (11:27 +0100)]
Fix CFI fixups for long branches on MIPS.
Change-Id: Ibc078e6dc5d7ef423c6a3db855f19f1426e0ea5a
Goran Jakovljevic [Thu, 14 Apr 2016 09:46:58 +0000 (11:46 +0200)]
Fix copy-paste nit
Pair ENTRY and END macros.
Change-Id: I17dcc61cdd02b2c26b9920e5385b6cb1420b18dd
Nicolas Geoffray [Thu, 14 Apr 2016 09:47:04 +0000 (09:47 +0000)]
Merge "Remove the JIT from the instrumentation framework."
Vladimir Marko [Wed, 13 Apr 2016 18:29:26 +0000 (19:29 +0100)]
Use dex cache from compilation unit in HInstructionBuilder.
Avoid calling costly ClassLinker::FindDexCache() from
HInstructionBuilder, the dex cache is already available in
the compilation unit. Compiling Nexus 5 boot image on host
under perf(1) shows that the time spent in FindDexCache()
is reduced from about 2% to well under 0.2%, 90% of the
remaining hits coming from ReferenceTypePropagation which
doesn't have access to the compilation unit.
Change-Id: Id9df61c79db9a67e3f12c857f32a4ca80e5420c3
Aart Bik [Wed, 13 Apr 2016 22:34:17 +0000 (22:34 +0000)]
Merge "Revert "Remove the no-longer-needed F/I and D/J alias.""
Treehugger Robot [Wed, 13 Apr 2016 22:05:51 +0000 (22:05 +0000)]
Merge "Allow private methods in interfaces."
Aart Bik [Wed, 13 Apr 2016 21:17:17 +0000 (21:17 +0000)]
Revert "Remove the no-longer-needed F/I and D/J alias."
This reverts commit
2f52064dcfe5ebce5a998d30766ca079a366c920.
Reason:
Arrays.sort() returns wrong result on double[] and this CL is the most likely suspect. Rolling back to buy some time for careful analysis and debugging.
Change-Id: I58223c42e95c2287520eef863fbcb738b0736d4d
Alex Light [Tue, 12 Apr 2016 22:50:55 +0000 (15:50 -0700)]
Allow private methods in interfaces.
Private methods may be generated in interfaces during compilation of
some default methods. Change the verifier to allow these methods.
Bug:
27999840
Change-Id: Ib8120a8f6cb036021334d9af0ed78ae372974ecb
Richard Uhler [Mon, 4 Apr 2016 20:30:16 +0000 (13:30 -0700)]
Restore fallback behavior in the no-image stripped-dex case.
Add --strip-dex option to run-test to test this case.
Bug:
27599626
Change-Id: I010543f48c39adbda007e2e05dda62ac1d70715c
Mathieu Chartier [Wed, 13 Apr 2016 19:11:29 +0000 (19:11 +0000)]
Merge "Add imgdiag support for diff against zygote"
Mathieu Chartier [Fri, 8 Apr 2016 21:08:37 +0000 (14:08 -0700)]
Add imgdiag support for diff against zygote
Adds option --zygote-diff-pid. If this option is passed in then it
tries to differentiate objects that are private dirty by comparing
them against the zygote image contents if they are different from
the boot image contents.
Bug:
27906566
(cherry picked from commit
1398cf23ab47d250ea3eea39812e29a748b70777)
Change-Id: I99b1552d046e65dd9da0d1bdb8cb309aa0f9b0db
Vladimir Marko [Wed, 13 Apr 2016 16:55:11 +0000 (16:55 +0000)]
Merge "Move Assemblers to the Arena."
Vladimir Marko [Wed, 13 Apr 2016 10:59:46 +0000 (11:59 +0100)]
Move Assemblers to the Arena.
And clean up some APIs to return std::unique_ptr<> instead
of raw pointers that don't communicate ownership.
Change-Id: I3017302307a0253d661240750298802fb0d9585e
Nicolas Geoffray [Tue, 12 Apr 2016 15:33:24 +0000 (16:33 +0100)]
Remove the JIT from the instrumentation framework.
This was slowing down the interpreter for no reason.
Also, call AddSamples for invoke-static and invoke-direct.
Change-Id: I7b5641097f7741dd32feb1ce6af739fd27fb37c2
Aart Bik [Wed, 13 Apr 2016 16:15:35 +0000 (16:15 +0000)]
Merge "Remove the no-longer-needed F/I and D/J alias."
Bill Buzbee [Wed, 13 Apr 2016 12:37:16 +0000 (12:37 +0000)]
Merge "Revert "Revert "ART: Improve JitProfile perf in x86 mterp"""
Calin Juravle [Wed, 13 Apr 2016 11:44:36 +0000 (11:44 +0000)]
Merge "Add option to tune sample collection based on thread sensitivity"
Calin Juravle [Thu, 7 Apr 2016 16:09:25 +0000 (17:09 +0100)]
Add option to tune sample collection based on thread sensitivity
Bug:
28065407
Bug:
27865109
Change-Id: Icdb89f8f8874a41c07e73185523d18e8956620d3
Vladimir Marko [Wed, 13 Apr 2016 10:41:20 +0000 (10:41 +0000)]
Merge "Allocate code generators on the arena."
Treehugger Robot [Wed, 13 Apr 2016 10:26:35 +0000 (10:26 +0000)]
Merge "Revert "Ignore libcore.java.lang.OldSystemTest#test_gc failures with CC.""
Andreas Gampe [Wed, 13 Apr 2016 04:21:53 +0000 (04:21 +0000)]
Merge "ART: Simplify unstarted-runtime ceil and floor"
Andreas Gampe [Wed, 13 Apr 2016 01:07:36 +0000 (18:07 -0700)]
ART: Simplify unstarted-runtime ceil and floor
Just use the C functions like libcore does. Add tests.
Bug:
28132336
Change-Id: Ic5f469e8504c9f2b7756280558fd1610ed8015ba
Aart Bik [Tue, 12 Apr 2016 22:05:45 +0000 (15:05 -0700)]
Remove the no-longer-needed F/I and D/J alias.
Rationale:
Now that our HIR is type clean (yeah!), we no longer have
to conservatively assume F/I and D/J are aliased. This
enables more accurate side effects analysis, with improvements
in all clients, such a LICM.
BUG=
22538329
Change-Id: Iba1fb09ff063f31b5893f588aa6d0c5ab3b42f39
Hiroshi Yamauchi [Wed, 13 Apr 2016 01:22:29 +0000 (18:22 -0700)]
Revert "Ignore libcore.java.lang.OldSystemTest#test_gc failures with CC."
This reverts commit
e693ba17e8b758a1894dd1b53f733471afc5976d.
Bug:
26155567
Mathieu Chartier [Wed, 13 Apr 2016 01:19:08 +0000 (01:19 +0000)]
Merge "Fix InsertDexFileInToClassLoader to handle null class loaders"
Mathieu Chartier [Tue, 12 Apr 2016 23:54:48 +0000 (16:54 -0700)]
Fix InsertDexFileInToClassLoader to handle null class loaders
Maybe used by legacy apps. This functionality is planned for
deprecation.
Bug:
27954959
(cherry picked from commit
f2bf9d640e37b72be8b4f6016d4aa95a0e27b7b4)
Change-Id: I1ae2cf1e33f2f1b237a41c8cc50d2a814a52a95a
Andreas Gampe [Tue, 12 Apr 2016 22:27:18 +0000 (22:27 +0000)]
Merge "ART: Flag to fail thread creation"
Andreas Gampe [Mon, 11 Apr 2016 15:42:26 +0000 (08:42 -0700)]
ART: Flag to fail thread creation
Add a flag to mark when the zygote is not allowed to create threads.
Bug:
27248115
Bug:
28149511
(cherry picked from commit
415d8070e37c20dfb7e6dc37e74fdb5fffc2022e)
Change-Id: I1dc3620d9e7d0054c672b993d89459fc4b353dfc
Andreas Gampe [Tue, 12 Apr 2016 20:46:41 +0000 (20:46 +0000)]
Merge "ART: Add Makefile target for boot image"
Vladimir Marko [Tue, 12 Apr 2016 17:51:43 +0000 (18:51 +0100)]
Allocate code generators on the arena.
Change-Id: If8cf0ee43711f6e13171443e3c057ff370ccfbaa
Hiroshi Yamauchi [Tue, 12 Apr 2016 17:33:34 +0000 (17:33 +0000)]
Merge "Assembly region TLAB allocation fast path for arm64."
Andreas Gampe [Mon, 11 Apr 2016 18:57:18 +0000 (11:57 -0700)]
ART: Add Makefile target for boot image
Add a phony Makefile target that depends on the dexopted boot image.
This allows to test out changes easily, for example, for compile-time
initialization:
m art-boot-image ART_BOOT_IMAGE_EXTRA_ARGS=--dump-init-failures=fails.txt
Bug:
27265238
Change-Id: I9d54c562a2e623b23b7c1dea9cdbe303786c95dd
Roland Levillain [Tue, 12 Apr 2016 16:18:08 +0000 (16:18 +0000)]
Merge "Small changes in ARM and x86-64 SystemArrayCopy intrinsics."
Roland Levillain [Tue, 12 Apr 2016 14:42:57 +0000 (15:42 +0100)]
Small changes in ARM and x86-64 SystemArrayCopy intrinsics.
Have these intrinsics share a more uniform style with the
ARM64 SystemArrayCopy intrinsic.
Also make some changes/improvements in:
- art::IntrinsicOptimizations
- art::arm64::GenSystemArrayCopyAddresses
Change-Id: Ieeb224795229580f8e5f7219c586d04786d8c705
David Brazdil [Tue, 12 Apr 2016 14:19:33 +0000 (14:19 +0000)]
Merge "ART: Speed up HGraph::PopulateIrreducibleRecursive"
David Brazdil [Tue, 5 Apr 2016 16:15:19 +0000 (17:15 +0100)]
ART: Speed up HGraph::PopulateIrreducibleRecursive
Populating an irreducible loop can potentially traverse all possible
paths through the HGraph, leading to an exponential algorithm.
This patch adds a bit vector of nodes whose membership in the loop
has been decided and need not be revisited again.
Bug:
27856014
Change-Id: I3696f08c846e6f40e5de44cb771811bac7e3e08a
Vladimir Marko [Tue, 12 Apr 2016 13:58:51 +0000 (13:58 +0000)]
Merge "Remove recursive ALWAYS_INLINE"
Sergio Giro [Tue, 12 Apr 2016 13:39:24 +0000 (13:39 +0000)]
Merge "unstarted_runtime: add cutout for Math.floor"
Sergio Giro [Mon, 11 Apr 2016 19:49:20 +0000 (20:49 +0100)]
unstarted_runtime: add cutout for Math.floor
Needed in order to make BouncyCastleProvider initializable in
compile time
(cherry picked from commit
a8908ef14cf2d2e0d05e41e319da5d6909325ae2)
Bug:
28108158
Change-Id: Id6b4e3d4dde45354562603f41134d8d21da2b423
Narayan Kamath [Tue, 12 Apr 2016 12:52:34 +0000 (12:52 +0000)]
Merge "Revert "Update expectations for 031-class-attributes.""
Narayan Kamath [Tue, 12 Apr 2016 12:38:09 +0000 (13:38 +0100)]
Revert "Update expectations for 031-class-attributes."
This reverts commit
32580ebd54bfeef62d5769439d336ca33f5592b0.
The original commit tracked OpenJDK behaviour, which we've decided
to revert because several apps depend on the value of Package.toString.
bug:
28057303
Goran Jakovljevic [Tue, 12 Apr 2016 11:11:16 +0000 (13:11 +0200)]
Remove recursive ALWAYS_INLINE
GCC (mips32 Buildbot) is complaining about recursive inlining.
Clean up after
https://android-review.googlesource.com/#/c/214918/.
Change-Id: I221c53c32403e5e433e30cfee7b2ae36680f39e6
Mathieu Chartier [Tue, 12 Apr 2016 02:23:10 +0000 (02:23 +0000)]
Merge changes from topic 'image_layout'
* changes:
Fix relocate in place to handle arbitrary app image layout
Revert "Revert "Reduce dirty image pages by improving binning""
Revert "Reduce dirty image pages by improving binning"
Reduce dirty image pages by improving binning
Mathieu Chartier [Mon, 11 Apr 2016 19:03:48 +0000 (12:03 -0700)]
Fix relocate in place to handle arbitrary app image layout
Previously the relocation had bugs where it would not work correctly
if the iftable was after the class since the object arrays would not
yet be updated to be the relocated address when we went through them
to fixup the ArtMethod pointers.
Also fixes a bug where the superclass of a class could not be
updated when we walk through it for visiting instance fields of
large objects.
Changed RelocateInPlace to use a simplier single pass approach.
Bug:
27906566
Bug:
22858531
(cherry picked from commit
564289c753cbe3521f9523b350bd713c1fe2fbd4)
Change-Id: I97affab6ff353dfdc4d1bf31df69ceb96a0c7a1a
Mathieu Chartier [Sat, 9 Apr 2016 02:01:05 +0000 (19:01 -0700)]
Revert "Revert "Reduce dirty image pages by improving binning""
This reverts commit
8ace610a222892f7b700e4f95e50fa6315ab85c0.
(cherry picked from commit
80c563ba136fd8da8791cf0f1a5f8f7026816ead)
Change-Id: I5b312f41d8b96eb189ea8b9d3a3ab861c5c9d515
Mathieu Chartier [Sat, 9 Apr 2016 01:54:36 +0000 (18:54 -0700)]
Revert "Reduce dirty image pages by improving binning"
This reverts commit
794bff5f622c79fd7bd9899e700cf052a375c675.
(cherry picked from commit
8ace610a222892f7b700e4f95e50fa6315ab85c0)
Change-Id: Id53d64a04aa8766a2cb283a2f7b8354590213b13
Mathieu Chartier [Thu, 7 Apr 2016 21:16:26 +0000 (14:16 -0700)]
Reduce dirty image pages by improving binning
Change ordering from dirty to less dirty since ArtFields are clean
and they are last. Add separate binning for DexCache and instances
of java lang object (probably a lock object).
Business card .art RAM (on shamu):
PSS Private Dirty
.art mmap 1011 600
.art mmap 990 560
Bug:
27906566
(cherry picked from commit
794bff5f622c79fd7bd9899e700cf052a375c675)
Change-Id: I31c9ff41c3d713fc3b14573c2b731325ac6f366f
Hiroshi Yamauchi [Fri, 8 Apr 2016 00:18:24 +0000 (17:18 -0700)]
Assembly region TLAB allocation fast path for arm64.
This is for the CC collector.
Share the common fast path code with the tlab fast path code.
Speedup (on N9):
BinaryTrees: 1235 -> 443 ms (-64%)
MemAllocTest: 1647 -> 766 ms (-53%)
Bug:
9986565
Bug:
12687968
Change-Id: I67049cc0b4d6508934f07d039d421ee162b330bf
Mathieu Chartier [Mon, 11 Apr 2016 21:12:11 +0000 (21:12 +0000)]
Merge "Don't abort during app image loading with no boot image"
Mathieu Chartier [Mon, 11 Apr 2016 20:56:45 +0000 (13:56 -0700)]
Don't abort during app image loading with no boot image
Fail gracefully instead. Fixes test 119.
Bug:
22858531
Change-Id: If17acf5365f8a8fc0a2f6445c558960c62c8f948
Calin Juravle [Mon, 11 Apr 2016 17:32:24 +0000 (17:32 +0000)]
Merge "ART: Make mterp jit profiling race tolerant"
buzbee [Mon, 11 Apr 2016 14:48:18 +0000 (07:48 -0700)]
ART: Make mterp jit profiling race tolerant
The JIT profiling mechanism is intentionally non-precise to minimize
performance overhead. In general, this is not a problem. However,
the on-stack replacement mechanism assumes an order of method
compilation than can sometimes be violated if conditions are just
right.
This change allows compilation requests that were dropped due to
a race condition to eventually be re-issued. It does this by allowing
the 16-bit hotness counter to wrap around.
Change-Id: I2ac8056af8c4f7f8cef3f2c3db70b0394c26a566
Nicolas Geoffray [Mon, 11 Apr 2016 15:45:57 +0000 (15:45 +0000)]
Merge "MIPS: Improving art_quick_imt_conflict_trampoline"
Andreas Gampe [Mon, 11 Apr 2016 15:29:56 +0000 (15:29 +0000)]
Merge "ART: Change prebuild run-test setup"
Vladimir Marko [Mon, 11 Apr 2016 14:18:05 +0000 (14:18 +0000)]
Merge "Oatdump: Smarter StackMap lookup to improve performance."
Calin Juravle [Mon, 11 Apr 2016 13:56:56 +0000 (13:56 +0000)]
Merge "Revert "Revert "Revert "Revert "ART: Improve JitProfile perf in arm/arm64 mterp"""""
Vladimir Marko [Fri, 8 Apr 2016 10:18:25 +0000 (11:18 +0100)]
Oatdump: Smarter StackMap lookup to improve performance.
Shaves off roughly 10% from the oatdump_test time.
Bug:
27824283
Change-Id: I6c2fd3b1db2723871641d43aeb543581d405cfcb
Nicolas Geoffray [Mon, 11 Apr 2016 08:24:18 +0000 (08:24 +0000)]
Merge "Implement on-stack replacement for MIPS32 and MIPS64"
Andreas Gampe [Wed, 23 Mar 2016 17:54:21 +0000 (10:54 -0700)]
ART: Change prebuild run-test setup
Prebuild was meant to check whether the runtime correctly loads
pre-existing oat files. With the advent of patching images, this
has actually been reduced to "does the runtime run self-patchoat"
correctly.
We cannot produce a prebuilt oat file that does not have to be
patched, as the runtime will patch the image when it starts.
There are two options to make this more meaningful:
* In the prebuild setting, first run patchoat to explicitly create
a valid dalvik-cache.
* Change the dex2oat output to be the odex file, which can be
patched like a regular file.
This change shows the latter approach.
Change-Id: I5234e10d78f7ea6c7ad8598db67d3fad8ba42b67
Alex Light [Fri, 8 Apr 2016 18:42:03 +0000 (18:42 +0000)]
Merge "Make sure non-fatal errors aren't printed."
Andreas Gampe [Fri, 8 Apr 2016 18:33:25 +0000 (18:33 +0000)]
Merge "ART: Refactor imgdiag internals"
Mathieu Chartier [Fri, 8 Apr 2016 17:50:05 +0000 (17:50 +0000)]
Merge changes from topic 'rr_barrier'
* changes:
Store precice set of which constructors require barriers
Revert "Revert "Check if we require barrier if we did not resolve classes""
Revert "Revert "Change RequiresConstructorBarrier default to yes""
Mathieu Chartier [Thu, 7 Apr 2016 20:19:19 +0000 (13:19 -0700)]
Store precice set of which constructors require barriers
Fixes bugs where things in the boot image might not have been
calculated even though resolved_clases was true. This only occured
for app and test compiles though.
Fixes test 476-checker-ctor-memory-barrier which was failing due to
inlining something in the boot class path and getting a unexpected
barrier since the barrier defaults to enabled.
No measurable increase in RAM usage.
Bug:
28005874
Change-Id: I4a417819aa129c95f4a83c38df1a66eb77824ea9
Bill Buzbee [Fri, 8 Apr 2016 17:28:49 +0000 (17:28 +0000)]
Merge "ART: Fix race in on-stack replacement"
Alex Light [Fri, 8 Apr 2016 16:44:54 +0000 (09:44 -0700)]
Make sure non-fatal errors aren't printed.
During run-test setup `du` can print error messages if the folder it
is running on is modified during its execution. We silence these error
messages since they shouldn't affect the validity of the test.
Change-Id: I9f59e39c2a346414f025ce1fa79b453329080d30
buzbee [Thu, 7 Apr 2016 21:42:47 +0000 (14:42 -0700)]
ART: Fix race in on-stack replacement
The expected sequence of events for on-stack replacement is:
1. Method goes warm, triggering enhanced profiling
2. Method goes hot, triggering method compilation
3. Method goes really hot, triggering an osr method compilation.
4. Interpreter polls for the existence of an osr entry point,
and transitons to compiled code if found.
We have a race problem if #2 and #3 happen closely together, and
the osr method compilation begins before the regular method
compilation. In that case, the jit sees that the method is
already being compiled (the osr method - but it does not
distinguish the two), and discards the normal compilation request.
So, the osr version is compiled and the normal version is discarded.
In #4, the MaybeDoOnStackReplacement() check assumes that a normal
version of the compiled method must exist before doing an on-stack
replacement, so it keeps returning false.
This is why we were seeing sporadic timeout failures of
570-checker-osr when the mterp fast branch profiling was
introduced. The branch profiling performance enhancements
greatly reduced the time between #2 and #3, increasing the liklihood
of losing the race. Further, the new code clamped hotness to avoid
wrap-around. The race existed (and likely occurred) in the previous
version, but because hotness counters were allowed to overflow and
wrap around you'd eventually hit the threshold a second time and
try again - masking the problem.
Tip 'o the hat to Serguei Katkov for identifying the problem.
A possible solution (taken in this CL) is to differentiate osr
compilations from normal method compilations.
Bug:
27939339
Change-Id: I71044516b35dc69de9fc2d2a445e33809ac650ed
Bill Buzbee [Mon, 4 Apr 2016 16:59:29 +0000 (16:59 +0000)]
Revert "Revert "Revert "Revert "ART: Improve JitProfile perf in arm/arm64 mterp""""
Bug:
28081559
This reverts commit
961ea9fe42edcc2c57469bf451d1ca421da5cd59.
Change-Id: I98a5bb8112646706ae7bd73bf6393cb956466be3
Roland Levillain [Fri, 8 Apr 2016 16:01:18 +0000 (16:01 +0000)]
Merge "Ignore libcore.java.lang.ThreadTest failures on device."
Roland Levillain [Fri, 8 Apr 2016 15:04:11 +0000 (16:04 +0100)]
Ignore libcore.java.lang.ThreadTest failures on device.
Since https://android-review.googlesource.com/#/c/209427
has been merged, libcore.java.lang.ThreadTest tests are
failing with this error on ARM64:
java.lang.UnsatisfiedLinkError: dlopen failed: library "libnativehelper_compat_libc++.so" not found
at java.lang.Runtime.loadLibrary0(Runtime.java:977)
at java.lang.System.loadLibrary(System.java:1628)
at libcore.java.lang.ThreadTest.<clinit>(ThreadTest.java:26)
Ignore those failures for now to make the build turn green
again, while we investigate.
Bug:
28082914
Change-Id: Ia8c3c776c99aace06701479d1440c828d39cbec3
Jeff Hao [Fri, 8 Apr 2016 03:16:37 +0000 (03:16 +0000)]
Merge "Fix combined checksum calculation to use isa."
Jeff Hao [Fri, 8 Apr 2016 03:16:24 +0000 (03:16 +0000)]
Merge "Combine checksum of all boot images."
Jeff Hao [Fri, 8 Apr 2016 02:46:31 +0000 (19:46 -0700)]
Fix combined checksum calculation to use isa.
Bug:
28054110
(cherry-picked from commit
8bbda8e683a1933755d0b8a68fed620cd63148ee)
Change-Id: I228db6ea1003e4e70d6a5fa7345d56409e70bd87
Jeff Hao [Thu, 7 Apr 2016 22:40:54 +0000 (15:40 -0700)]
Combine checksum of all boot images.
Allows a change to be detected in more than just the first image.
Combines checksums of all boot images using xor. A better hash is left
as TODO.
Bug:
28054110
(cherry-picked from commit
4f351aae00f43dd4e3290976f249d3664cc47091)
Change-Id: Ia557e2460ca582082368ef93508c04ce32c3036a
Bill Buzbee [Thu, 7 Apr 2016 23:47:55 +0000 (23:47 +0000)]
Merge "ART: Fix interpreter single-step when doing OSR"
buzbee [Thu, 7 Apr 2016 20:52:48 +0000 (13:52 -0700)]
ART: Fix interpreter single-step when doing OSR
Records an interpreter exit when in single-step mode and we've
finished processing the method via on-stack replacement.
Change-Id: I7a7d9ee9e4f3fbf7f829d9f54eca0e7c64395003