OSDN Git Service

android-x86/art.git
9 years agoMerge "Fix native allocation watermark clamping."
Mathieu Chartier [Thu, 4 Sep 2014 04:36:08 +0000 (04:36 +0000)]
Merge "Fix native allocation watermark clamping."

9 years agoFix native allocation watermark clamping.
Mathieu Chartier [Wed, 3 Sep 2014 17:30:11 +0000 (10:30 -0700)]
Fix native allocation watermark clamping.

The main issue causing the test to fail is that
native_footprint_gc_watermark_ becoming > growth_limit_ due to no
clamping.

Temporary runFinalization fix is calling runFinalization 2x.

Bug: 17371542

(cherry picked from commit 4c7fc5950853b0c368e2148db77ced7c4d3c303c)

Change-Id: I05b85e95560c32c33d53bc96abf87d5262007395

9 years agoMerge "Add exception check to AllocateInternalWithGc"
Mathieu Chartier [Thu, 4 Sep 2014 03:32:56 +0000 (03:32 +0000)]
Merge "Add exception check to AllocateInternalWithGc"

9 years agoAdd exception check to AllocateInternalWithGc
Mathieu Chartier [Wed, 3 Sep 2014 18:21:08 +0000 (11:21 -0700)]
Add exception check to AllocateInternalWithGc

Trying to figure out if the pending exception comes before or during
AllocateInternalWithGc.

Bug: 17164348

(cherry picked from commit 98d43cb0da3c34d1888d1e31d953c2940fd0f897)

Change-Id: I2aac4b67f0c3f1c0fe3c9dc321316f76494c4074

9 years agoMerge "Remove abuse of mirror::Object* to reference special values."
Ian Rogers [Thu, 4 Sep 2014 00:20:48 +0000 (00:20 +0000)]
Merge "Remove abuse of mirror::Object* to reference special values."

9 years agoRemove abuse of mirror::Object* to reference special values.
Ian Rogers [Wed, 3 Sep 2014 23:16:56 +0000 (16:16 -0700)]
Remove abuse of mirror::Object* to reference special values.

Remove kInvalidIndirectRefObject, kClearedJniWeakGlobal and
ObjectRegistry::kInvalidObject. Handle error conditions by passing in or
returning an error value.
GetObjectRefType is simplified to be faster and not return invalid references
that are not expected according to the spec. Adjust check JNI and
jni_internal_test appropriately.
Fix cases in the debugger/JDWP of out arguments being passed by reference.
Bug: 17376993

Change-Id: I3ce8a28c01827e163f4dc288449959464da788b1

9 years agoMerge "Fix SetupResourceMasks to pass correct parameters"
Vladimir Marko [Wed, 3 Sep 2014 11:48:42 +0000 (11:48 +0000)]
Merge "Fix SetupResourceMasks to pass correct parameters"

9 years agoMerge "ART fix oat debug source map operations"
Vladimir Marko [Wed, 3 Sep 2014 08:53:49 +0000 (08:53 +0000)]
Merge "ART fix oat debug source map operations"

9 years agoMerge "Reduce lock contention when debugging"
Sebastien Hertz [Wed, 3 Sep 2014 07:17:29 +0000 (07:17 +0000)]
Merge "Reduce lock contention when debugging"

9 years agoMerge "Quick compiler, aarch64: Insane sanity checker"
buzbee [Wed, 3 Sep 2014 01:41:16 +0000 (01:41 +0000)]
Merge "Quick compiler, aarch64: Insane sanity checker"

9 years agoMerge "Fix native allocation test."
Mathieu Chartier [Wed, 3 Sep 2014 01:14:14 +0000 (01:14 +0000)]
Merge "Fix native allocation test."

9 years agoMerge "Change native allocations to use growth limit."
Mathieu Chartier [Wed, 3 Sep 2014 01:13:57 +0000 (01:13 +0000)]
Merge "Change native allocations to use growth limit."

9 years agoMerge "ART: Fix StubTest Interface Trampoline test"
Andreas Gampe [Wed, 3 Sep 2014 01:00:21 +0000 (01:00 +0000)]
Merge "ART: Fix StubTest Interface Trampoline test"

9 years agoART: Fix StubTest Interface Trampoline test
Andreas Gampe [Wed, 21 May 2014 22:37:53 +0000 (15:37 -0700)]
ART: Fix StubTest Interface Trampoline test

The imt conflict test does not actually need a proper conflict,
as we do not invoke through a lookup.

Added simple check for art_quick_invoke_interface_trampoline_with_access_check.
Only non-failure testing, as failure requires a properly setup frame etc.

Change-Id: I173dac04db950bd23f62eaf13341a7b19802e5e8

9 years agoFix native allocation test.
Mathieu Chartier [Wed, 3 Sep 2014 00:36:08 +0000 (17:36 -0700)]
Fix native allocation test.

Forgot to update with last CL.

(cherry picked from commit c60bdf667b5c6fa767548942f0115547523593b4)

Change-Id: I41ad168a5906ca07938bdd212a55f0e995ee5df7

9 years agoChange native allocations to use growth limit.
Mathieu Chartier [Tue, 2 Sep 2014 23:21:01 +0000 (16:21 -0700)]
Change native allocations to use growth limit.

Previously native allocation tracking used a GC footprint limit
which would cause GC in the allocating thread. This prevented
excessive growth of the heap but could cause jank due to GC in
the allocating thread. The new behavior is using the growth_limit
instead of the native footprint limit.

(cherry picked from commit d9819ecc0bc21a2bb356a4de9b013e36fe618627)

Change-Id: Ia40ed830e8c674cc49d4c0a6fd773d6cb8ff97fa

9 years agoMerge "Add missing read barriers to intern table."
Mathieu Chartier [Wed, 3 Sep 2014 00:47:15 +0000 (00:47 +0000)]
Merge "Add missing read barriers to intern table."

9 years agoMerge "ART: Fix read-out-of-bounds in the compiler"
Andreas Gampe [Wed, 3 Sep 2014 00:31:30 +0000 (00:31 +0000)]
Merge "ART: Fix read-out-of-bounds in the compiler"

9 years agoART: Fix read-out-of-bounds in the compiler
Andreas Gampe [Wed, 27 Aug 2014 21:24:42 +0000 (14:24 -0700)]
ART: Fix read-out-of-bounds in the compiler

In case of a wide dalvik register, asking for the constant value
can lead to a read out of bounds.

Bug: 17302671

(cherry picked from commit ade731854d18839823e57fb2d3d67238c5467d15)

Change-Id: Ie1849cd67cc418c97cbd7a8524f027f9b66e4c96

9 years agoMerge "ART: Tighten verifier list reading and offsets"
Andreas Gampe [Wed, 3 Sep 2014 00:06:22 +0000 (00:06 +0000)]
Merge "ART: Tighten verifier list reading and offsets"

9 years agoART: Tighten verifier list reading and offsets
Andreas Gampe [Tue, 2 Sep 2014 18:17:34 +0000 (11:17 -0700)]
ART: Tighten verifier list reading and offsets

Check offsets and sizes for header entries of a dex file.

Bug: 17347459

(cherry picked from commit 78d639ef4be3ad7314846e1e6c1261d7d30f83fa)

Change-Id: Ia1727c33dea51f7a8e345f3799f1ba414708239c

9 years agoAdd missing read barriers to intern table.
Mathieu Chartier [Tue, 2 Sep 2014 23:20:45 +0000 (16:20 -0700)]
Add missing read barriers to intern table.

Also deleted GcRoot::Assign.

Change-Id: Ib1ea739cf79c72fc92a8628cd9095c11b660e018

9 years agoMerge "Change intern table to unordered set."
Mathieu Chartier [Tue, 2 Sep 2014 23:42:02 +0000 (23:42 +0000)]
Merge "Change intern table to unordered set."

9 years agoMerge "Disable SignalTest with GC stress."
Ian Rogers [Tue, 2 Sep 2014 23:32:25 +0000 (23:32 +0000)]
Merge "Disable SignalTest with GC stress."

9 years agoFix SetupResourceMasks to pass correct parameters
Junmo Park [Sat, 30 Aug 2014 11:13:02 +0000 (20:13 +0900)]
Fix SetupResourceMasks to pass correct parameters

Calling SetupTargetResourceMasks function with correct parameter.
SetupTargetResourceMasks(lir, flags, use_mask, def_mask) is correct order.

Change-Id: I49118c3f2d3d06fac83fa3d5014b7fdaff6a2b00
Signed-off-by: Junmo Park <junmoz.park@samsung.com>
9 years agoDisable SignalTest with GC stress.
Ian Rogers [Tue, 2 Sep 2014 22:59:28 +0000 (15:59 -0700)]
Disable SignalTest with GC stress.

Also, only add to broken tests list run-tests that will be generated.

Change-Id: Ibd363c059c799110da7f3f5ec8ceba55277d5e0e

9 years agoQuick compiler, aarch64: Insane sanity checker
buzbee [Tue, 2 Sep 2014 22:39:57 +0000 (15:39 -0700)]
Quick compiler, aarch64: Insane sanity checker

Fix bit-mask generation used in the sanity checking code
for long division by small constants via multiplication.  The
failing case was a 64-bit wide mask.  The macro was using the
desired width of the result as a shift count - and a left
shift of a 64-bit integer by 64 bits is undefined.

Note that the generated code is correct - it's just the sanity
checking code that was wrong.

Change-Id: Ic6654662f848d3caab2c3b1ef0d92fe2eb9673f4

9 years agoMerge "Pre-allocate the NoClassDefFoundError to be thrown for boot classes."
Ian Rogers [Tue, 2 Sep 2014 22:49:45 +0000 (22:49 +0000)]
Merge "Pre-allocate the NoClassDefFoundError to be thrown for boot classes."

9 years agoPre-allocate the NoClassDefFoundError to be thrown for boot classes.
Ian Rogers [Wed, 4 Jun 2014 23:57:15 +0000 (16:57 -0700)]
Pre-allocate the NoClassDefFoundError to be thrown for boot classes.

Bring over a Dalvik "optimization".
Bug: 12804658
Bug: 16853450
Change-Id: I6419de7bd2ba18d91479cb52489104954f5c4524

9 years agoChange intern table to unordered set.
Mathieu Chartier [Sat, 30 Aug 2014 01:16:58 +0000 (18:16 -0700)]
Change intern table to unordered set.

Intern table active used bytes goes from 430k to 317k on system
server. Similar %wise savings on other apps.

Bug: 16238192

(cherry picked from commit d910fcef539e12ab181e56ec80684f39c4e95733)

Change-Id: Ic70395124435c6f420a77e6d8639404a160f395a

9 years agoMerge "Reduce and speed-up class def searches."
Ian Rogers [Tue, 2 Sep 2014 21:22:20 +0000 (21:22 +0000)]
Merge "Reduce and speed-up class def searches."

9 years agoMerge "Change heap transitions + hspace compation to use VLOG(heap)"
Mathieu Chartier [Tue, 2 Sep 2014 19:56:48 +0000 (19:56 +0000)]
Merge "Change heap transitions + hspace compation to use VLOG(heap)"

9 years agoChange heap transitions + hspace compation to use VLOG(heap)
Mathieu Chartier [Tue, 2 Sep 2014 19:33:25 +0000 (12:33 -0700)]
Change heap transitions + hspace compation to use VLOG(heap)

VLOG(gc) is spammy since it is enabled.

(cherry picked from commit 8bd2961b385c870953e650c253a04ee24b76809b)

Change-Id: Id75256cdc6a9802818bb56f77533cca88ace42a6

9 years agoMerge "ART: Fix typo"
Andreas Gampe [Tue, 2 Sep 2014 17:43:07 +0000 (17:43 +0000)]
Merge "ART: Fix typo"

9 years agoART: Fix typo
Andreas Gampe [Tue, 2 Sep 2014 17:22:20 +0000 (10:22 -0700)]
ART: Fix typo

Bug: 17327877

(cherry picked from commit b373ba1bf7e67d4dd8286df08065ac76aa8ac1ee)

Change-Id: I6132a8afb4b69c8d22a01b477f6f324c789ed666

9 years agoReduce lock contention when debugging
Sebastien Hertz [Tue, 19 Aug 2014 13:33:43 +0000 (15:33 +0200)]
Reduce lock contention when debugging

Uses a ReaderWriterMutex for the breakpoint lock to reduce contention during
debugging session.

Also adds missing thread safety annotations on fields and methods related to
instrumentation and debugging.

Bug: 16814665
Bug: 11667502

(cherry picked from commit 59d9d668d4f4286813afe2b4e7c6db839222ce96)

Change-Id: I5f1156da8c6cc8316d6db16e6cfb2470fe289ad3

9 years agoMerge "ART: Fix dex file verifier type-list handling"
Andreas Gampe [Tue, 2 Sep 2014 16:23:23 +0000 (16:23 +0000)]
Merge "ART: Fix dex file verifier type-list handling"

9 years agoART: Fix dex file verifier type-list handling
Andreas Gampe [Fri, 29 Aug 2014 23:07:49 +0000 (16:07 -0700)]
ART: Fix dex file verifier type-list handling

It is rare, but valid, to have an empty type list.

Bug: 17327877

(cherry picked from commit 277a7c7b4bb9c421380592fd3998d2e79e4035b3)

Change-Id: Ib3a8ff3e5ccd8fe7c04b1e97485bf3e6de72aa4d

9 years agoReduce and speed-up class def searches.
Ian Rogers [Sat, 30 Aug 2014 03:19:11 +0000 (20:19 -0700)]
Reduce and speed-up class def searches.

Use the class linker for descriptor lookups from the compile driver so that
dex caches are populated.
Reduce the scope of functions for scanning class paths to just the class
linker where they are performed.
If we see more than a threshold number of find class def misses on a dex file
lazily compute an index, so that future lookups are constant time (part of the
collection code is taken from
https://android-review.googlesource.com/#/c/103865/3). Note that we take a lazy
approach so that we don't serialize on loading dex files, this avoids the
reason the index was removed in 8b2c0b9abc3f520495f4387ea040132ba85cae69.
Remove an implicit and unnecessary std::string creation for PrintableString.

Single threaded interpret-only dex2oat performance is improved by roughly 10%.

Bug: 16853450

Change-Id: Icf72df76b0a4328f2a24075e81f4ff267b9401f4

9 years agoMerge "Revert "Revert "ART: Prepare for ELF64."""
Nicolas Geoffray [Tue, 2 Sep 2014 08:12:44 +0000 (08:12 +0000)]
Merge "Revert "Revert "ART: Prepare for ELF64."""

9 years agoRevert "Revert "ART: Prepare for ELF64.""
Nicolas Geoffray [Tue, 2 Sep 2014 08:12:09 +0000 (08:12 +0000)]
Revert "Revert "ART: Prepare for ELF64.""

Fix was commited in "Fix frame size issue with 64-bit"

This reverts commit 7eebd95bddc7c6866ba29010d28b4f8251b43242.

Change-Id: I799b7fcab14ae24471d2f9d6d3a5e5cedd4aa7b8

9 years agoMerge "Fix frame size issue with 64-bit"
Narayan Kamath [Mon, 1 Sep 2014 15:55:16 +0000 (15:55 +0000)]
Merge "Fix frame size issue with 64-bit"

9 years agoMerge "Revert "ART: Prepare for ELF64.""
Nicolas Geoffray [Mon, 1 Sep 2014 15:14:16 +0000 (15:14 +0000)]
Merge "Revert "ART: Prepare for ELF64.""

9 years agoRevert "ART: Prepare for ELF64."
Nicolas Geoffray [Mon, 1 Sep 2014 15:13:00 +0000 (15:13 +0000)]
Revert "ART: Prepare for ELF64."

Build fails on arm64 with error message:
art/compiler/elf_writer_quick.cc:1083:1: error: the frame size of 2016 bytes is larger than 1728 bytes [-Werror=frame-larger-than=]

This reverts commit 45b8f1ab2782d02830c77751f883456de799dfb6.

Change-Id: I61b2e5f27ba4b2b32eacaec51fb5e5ed12fd8066

9 years agoMerge "Add native memory accounting through custom allocator."
Mathieu Chartier [Sat, 30 Aug 2014 01:58:53 +0000 (01:58 +0000)]
Merge "Add native memory accounting through custom allocator."

9 years agoAdd native memory accounting through custom allocator.
Mathieu Chartier [Mon, 25 Aug 2014 20:08:22 +0000 (13:08 -0700)]
Add native memory accounting through custom allocator.

Added a custom allocator that lets you pass in a special tag which
specifices where the allocation came from. This is used when
dumping. The performance overhead is low since each allocation only
does a atomic add/sub for each allocation/free.

The measurements are dumped to traces.txt during SIGQUIT.

Example output:
I/art     (27274): AllocatorTagHeap active=120 max=120 total=168
I/art     (27274): AllocatorTagMonitorList active=1572 max=6240 total=11724
I/art     (27274): AllocatorTagClassTable active=185208 max=185208 total=268608
I/art     (27274): AllocatorTagInternTable active=430368 max=430368 total=436080
I/art     (27274): AllocatorTagMaps active=5616 max=6168 total=34392
I/art     (27274): AllocatorTagLOS active=1024 max=1536 total=2044
I/art     (27274): AllocatorTagSafeMap active=0 max=51936 total=533688
I/art     (27274): AllocatorTagLOSMaps active=144 max=1248 total=5760
I/art     (27274): AllocatorTagReferenceTable active=10944 max=11840 total=19136
I/art     (27274): AllocatorTagHeapBitmap active=32 max=40 total=56
I/art     (27274): AllocatorTagHeapBitmapLOS active=8 max=8 total=8
I/art     (27274): AllocatorTagVerifier active=0 max=18844 total=1073156
I/art     (27274): AllocatorTagModUnionCardSet active=5300 max=5920 total=56020
I/art     (27274): AllocatorTagModUnionReferenceArray active=24864 max=24864 total=24864
I/art     (27274): AllocatorTagJNILibrarires active=320 max=320 total=320
I/art     (27274): AllocatorTagOatFile active=1400 max=1400 total=5852

Change-Id: Ibb470ef2e9c9a24563bb46422d46a55799704d82

(cherry picked from commit 5369c40f75fdcb1be7a7c06db212ce965c83a164)

9 years agoMerge "ART: Fix accidental "1""
Andreas Gampe [Sat, 30 Aug 2014 01:16:09 +0000 (01:16 +0000)]
Merge "ART: Fix accidental "1""

9 years agoART: Fix accidental "1"
Andreas Gampe [Sat, 30 Aug 2014 01:15:04 +0000 (18:15 -0700)]
ART: Fix accidental "1"

Should have been "0".

Change-Id: I9ad3cf1e6be6d0fcf4c8f3700ddeec4e6d5ce167

9 years agoMerge "ART: Initialize fields of ParsedOptions"
Andreas Gampe [Sat, 30 Aug 2014 00:28:46 +0000 (00:28 +0000)]
Merge "ART: Initialize fields of ParsedOptions"

9 years agoFix frame size issue with 64-bit
Brian Carlstrom [Fri, 29 Aug 2014 23:20:48 +0000 (16:20 -0700)]
Fix frame size issue with 64-bit

Change-Id: Ib2f33dfb79952ba39f2d7e5303a2a2e6c4b0a0f6

9 years agoMerge "ART: Address issues with kIntrinsicMinMaxDouble for x86"
Ian Rogers [Fri, 29 Aug 2014 23:09:47 +0000 (23:09 +0000)]
Merge "ART: Address issues with kIntrinsicMinMaxDouble for x86"

9 years agoMerge "ART: Update CFG dumper to handle extended better"
Ian Rogers [Fri, 29 Aug 2014 23:04:06 +0000 (23:04 +0000)]
Merge "ART: Update CFG dumper to handle extended better"

9 years agoART: Initialize fields of ParsedOptions
Andreas Gampe [Fri, 29 Aug 2014 23:01:25 +0000 (16:01 -0700)]
ART: Initialize fields of ParsedOptions

Avoids certain paths where we touched uninitialized fields.

Bug: 17330858
Change-Id: Ia68161b12eefefacad6fc524f487f8e2caf6342a

9 years agoMerge "Fix master-art-host build by removing flakey test (temporarily)"
Dave Allison [Fri, 29 Aug 2014 21:20:05 +0000 (21:20 +0000)]
Merge "Fix master-art-host build by removing flakey test (temporarily)"

9 years agoMerge "ART: Prepare for ELF64."
Brian Carlstrom [Fri, 29 Aug 2014 21:17:50 +0000 (21:17 +0000)]
Merge "ART: Prepare for ELF64."

9 years agoFix master-art-host build by removing flakey test (temporarily)
Dave Allison [Fri, 29 Aug 2014 21:09:19 +0000 (14:09 -0700)]
Fix master-art-host build by removing flakey test (temporarily)

Change-Id: I8c97e7a5339a6f7f5984a58ee1a7b41eab3cb2b1

9 years agoMerge "Fix mac build and signal test"
Dave Allison [Fri, 29 Aug 2014 20:09:53 +0000 (20:09 +0000)]
Merge "Fix mac build and signal test"

9 years agoFix mac build and signal test
Dave Allison [Fri, 29 Aug 2014 19:29:34 +0000 (12:29 -0700)]
Fix mac build and signal test

Change-Id: I58311285db9095ca6339ce29a9f15e841b7c822d

9 years agoMerge "Fix mips build for nested signal handler"
Dave Allison [Fri, 29 Aug 2014 18:29:06 +0000 (18:29 +0000)]
Merge "Fix mips build for nested signal handler"

9 years agoFix mips build for nested signal handler
Dave Allison [Fri, 29 Aug 2014 18:05:17 +0000 (11:05 -0700)]
Fix mips build for nested signal handler

Bug: 17006816

(cherry picked from commit 5a18dde067daeb55f1368d5791c61e315bfa1d99)

Change-Id: Ia538e30012fed46cefba33092395c5361c571062

9 years agoMerge "Fix segfault if running without image."
Brian Carlstrom [Fri, 29 Aug 2014 18:02:02 +0000 (18:02 +0000)]
Merge "Fix segfault if running without image."

9 years agoMerge "Fix signal chain to allow for signal() call to be used"
Dave Allison [Fri, 29 Aug 2014 17:39:38 +0000 (17:39 +0000)]
Merge "Fix signal chain to allow for signal() call to be used"

9 years agoFix segfault if running without image.
Alex Light [Fri, 29 Aug 2014 17:28:25 +0000 (10:28 -0700)]
Fix segfault if running without image.

Bug: 17325091
Change-Id: I343099543ce0abf02219da84d61d9ce2dfc47980

9 years agoART: Prepare for ELF64.
Tong Shen [Wed, 27 Aug 2014 17:39:02 +0000 (10:39 -0700)]
ART: Prepare for ELF64.

Make ElfWriterQuick a template class. No functionality change.

Change-Id: I62b60dc9795c4795027e80f0bee6b54622ea49e9

9 years agoART: Address issues with kIntrinsicMinMaxDouble for x86
Razvan A Lupusoru [Thu, 14 Aug 2014 05:49:57 +0000 (13:49 +0800)]
ART: Address issues with kIntrinsicMinMaxDouble for x86

This patch fixes the following issues:
- Makes sure that invoke-static/range is considered for analysis
path that decides whether base of code register is needed.
- Invalidates the code pointer register in intrinsic implementations
of min/max for FP since generated code has diamond shape and Quick
does not correctly handle control flow merges.
- Reverts the clobbering of base of code register from constant
loading path since it reduces performance in linear code that
needs the register.
- Ensures that no assumption is made on whether base of code register
exists in cases like 64-bit where rip register may be used.

Change-Id: I96463ae1197e5cfa2a8bd3571163b38fb338a340
Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
Signed-off-by: Alexei Zavjalov <alexei.zavjalov@intel.com>
Signed-off-by: Haitao Feng <haitao.feng@intel.com>
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
9 years agoART: Update CFG dumper to handle extended better
Razvan A Lupusoru [Fri, 22 Aug 2014 22:39:50 +0000 (15:39 -0700)]
ART: Update CFG dumper to handle extended better

Change-Id: I0df8ece13deadf247a425beac0c08b2be5d773f9
Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
9 years agoMerge "ART: Check for no gaps only when we will have an immune region"
Andreas Gampe [Fri, 29 Aug 2014 08:21:35 +0000 (08:21 +0000)]
Merge "ART: Check for no gaps only when we will have an immune region"

9 years agoMerge "Fix Mac build"
Brian Carlstrom [Fri, 29 Aug 2014 05:29:14 +0000 (05:29 +0000)]
Merge "Fix Mac build"

9 years agoFix Mac build
Brian Carlstrom [Fri, 29 Aug 2014 05:17:13 +0000 (22:17 -0700)]
Fix Mac build

Bug: 17000769,16875245
Change-Id: Id5ff133e0c6c56db6972a187773c7e873b7062ee

9 years agoART: Check for no gaps only when we will have an immune region
Andreas Gampe [Wed, 27 Aug 2014 18:01:09 +0000 (11:01 -0700)]
ART: Check for no gaps only when we will have an immune region

In dex2oat, for example, this is not necessary. This CL enables running
dex2oat under valgrind.

Change-Id: Ia25c7bfb4903a613c80f4685030970b2a48e24f9

9 years agoFix signal chain to allow for signal() call to be used
Dave Allison [Thu, 28 Aug 2014 23:12:40 +0000 (16:12 -0700)]
Fix signal chain to allow for signal() call to be used

Bug: 17320614
Change-Id: Ia917307fb1b593644f524518e11e295b3c64be01

9 years agoMerge "Fix incorect variable name."
Brian Carlstrom [Thu, 28 Aug 2014 23:27:53 +0000 (23:27 +0000)]
Merge "Fix incorect variable name."

9 years agoFix incorect variable name.
Alex Light [Thu, 28 Aug 2014 23:23:48 +0000 (16:23 -0700)]
Fix incorect variable name.

Bug: 16875245
Change-Id: Idd0f7ac677568a53569308a67f1ad613584949a5

9 years agoMerge "Change /dalvik-cache to be owned by root."
Brian Carlstrom [Thu, 28 Aug 2014 23:17:01 +0000 (23:17 +0000)]
Merge "Change /dalvik-cache to be owned by root."

9 years agoMerge "Honor the read barrier option in IRT::Get()."
Hiroshi Yamauchi [Thu, 28 Aug 2014 23:02:45 +0000 (23:02 +0000)]
Merge "Honor the read barrier option in IRT::Get()."

9 years agoMerge "Fix issue with Thread.setName hanging after Thread.start"
Brian Carlstrom [Thu, 28 Aug 2014 22:44:30 +0000 (22:44 +0000)]
Merge "Fix issue with Thread.setName hanging after Thread.start"

9 years agoFix issue with Thread.setName hanging after Thread.start
Brian Carlstrom [Thu, 28 Aug 2014 06:43:46 +0000 (23:43 -0700)]
Fix issue with Thread.setName hanging after Thread.start

When suspending a thread by peer the invariant that only attached threads are
suspended must be maintained. Add a ThreadList::Contains check which requires
making this method non-static.
Add some extra thread logging.

Bug: 17302037

(cherry picked from commit 37c16453a92bbf1a47f042000318a1b60381017d)

Change-Id: I51832785d4b4b431e035318e75635f442e89a1fb

9 years agoHonor the read barrier option in IRT::Get().
Hiroshi Yamauchi [Thu, 28 Aug 2014 22:29:26 +0000 (15:29 -0700)]
Honor the read barrier option in IRT::Get().

Bug: 12687968
Change-Id: Ia69570d57542891a873213e00242953825a1458d

9 years agoMerge "Move the glibc unlimited stack hack into GetThreadStack."
Elliott Hughes [Thu, 28 Aug 2014 22:25:34 +0000 (22:25 +0000)]
Merge "Move the glibc unlimited stack hack into GetThreadStack."

9 years agoMerge "Fix an assert failure in art::DumpNativeStack()."
Hiroshi Yamauchi [Thu, 28 Aug 2014 22:19:37 +0000 (22:19 +0000)]
Merge "Fix an assert failure in art::DumpNativeStack()."

9 years agoFix an assert failure in art::DumpNativeStack().
Hiroshi Yamauchi [Thu, 28 Aug 2014 21:55:56 +0000 (14:55 -0700)]
Fix an assert failure in art::DumpNativeStack().

When ThreadList::SuspendAll() times out (and aborts),
UnsafeLogFatalForThreadSuspendAllTimeout() will call
art::DumpNativeStack() but it does not have the mutator lock
shared-locked (as it failed while trying to exclusive-lock the mutator
lock) and the AssertSharedHeld() on the mutator lock fails. It's an
assert failure nested in an time-out abort.

This change avoids it by letting it print the native method frame info
only if the thread has a shared lock on the mutator lock, as opposed
to asserting that it has a shared lock.

Change-Id: I17851ebcaa37f4f67086c15243a2cffea3997a02

9 years agoMerge "Quick compiler: Fix MIPS build"
buzbee [Thu, 28 Aug 2014 21:11:05 +0000 (21:11 +0000)]
Merge "Quick compiler: Fix MIPS build"

9 years agoQuick compiler: Fix MIPS build
buzbee [Thu, 28 Aug 2014 20:48:56 +0000 (13:48 -0700)]
Quick compiler: Fix MIPS build

In debug builds, the Quick compiler frequently runs a sanity checker
over the register pool.  Among other things, it attempts to verify
consistent representation of register pairs.  However, a register's
"wide" flag is meaningful only when the register pair is associated
with a Dalvik wide value (sreg != INVALID_SREG) rather than a temp
wide value.

The MIPS build was tripping over this bad assertion.  Fixed here.

Note related cl/105461

Change-Id: Id726ff1ea0f5cbcc8dba6fa3aacb3fd4fc043a63

9 years agoChange /dalvik-cache to be owned by root.
Alex Light [Wed, 27 Aug 2014 22:37:23 +0000 (15:37 -0700)]
Change /dalvik-cache to be owned by root.

Also prune the dalvik-cache during startup if we need to generate or
relocate an image.

Bug: 17000769,16875245

Change-Id: I29a70215a2207bc4e0db02ab751d32a68edf4b66

9 years agoMerge "Filling hole between subclass and superclass."
Mathieu Chartier [Thu, 28 Aug 2014 19:15:12 +0000 (19:15 +0000)]
Merge "Filling hole between subclass and superclass."

9 years agoFilling hole between subclass and superclass.
Fred Shih [Tue, 26 Aug 2014 00:24:27 +0000 (17:24 -0700)]
Filling hole between subclass and superclass.

Subclasses no longer need to be 4-byte aligned at the end. Any gaps
between a superclass and its subclasses will be filled in by halfword
or byte fields if possible.

Refactored the alignment and shuffling methods to use a priority queue
in order to reduce the amount of logic when laying out objects.

Change-Id: Ifed71af534e0c5e77bb14555c44b973fe66df6da

9 years agoMerge "Prevent exception bugs in class linker"
Mathieu Chartier [Thu, 28 Aug 2014 18:49:08 +0000 (18:49 +0000)]
Merge "Prevent exception bugs in class linker"

9 years agoPrevent exception bugs in class linker
Mathieu Chartier [Wed, 27 Aug 2014 22:28:28 +0000 (15:28 -0700)]
Prevent exception bugs in class linker

There were some places that could throw exceptions but still succeed.
This caused the allocation entrypoints to occasionally allocate a
heap object with a pending exception.
Also added some additional AssertNoExceptionPending.

Bug: 17164348

(cherry picked from commit 58c016c3f85d6d5496cea25325778de3a8d9a3ac)

Change-Id: Id9918fa8f1a5d713b847cb95cdade925ff80a826

9 years agoMove the glibc unlimited stack hack into GetThreadStack.
Elliott Hughes [Thu, 28 Aug 2014 17:24:44 +0000 (10:24 -0700)]
Move the glibc unlimited stack hack into GetThreadStack.

Optional cleanup that was previously a TODO.

Bug: 17111575
Change-Id: I7c20dbf1fdbcaf4604d7b55552930c10e166539d

9 years agoMerge "Avoid null pointer dereference when sending JDWP packets"
Sebastien Hertz [Thu, 28 Aug 2014 17:16:05 +0000 (17:16 +0000)]
Merge "Avoid null pointer dereference when sending JDWP packets"

9 years agoMerge "Actually ask the pthread implementation for the stack guard size."
Elliott Hughes [Thu, 28 Aug 2014 16:58:34 +0000 (16:58 +0000)]
Merge "Actually ask the pthread implementation for the stack guard size."

9 years agoActually ask the pthread implementation for the stack guard size.
Elliott Hughes [Wed, 27 Aug 2014 18:47:01 +0000 (11:47 -0700)]
Actually ask the pthread implementation for the stack guard size.

(cherry-pick 307091dc306c34ce9e4ee6cc3b467807b3a3bd12.)

Bug: 17111575
Change-Id: I23919b1e8aeff627a65daf57f1109bec60b196cc

9 years agoAvoid null pointer dereference when sending JDWP packets
Sebastien Hertz [Thu, 28 Aug 2014 16:50:36 +0000 (18:50 +0200)]
Avoid null pointer dereference when sending JDWP packets

Bug: 16218394

Change-Id: Id0ab09401b01f3041ea36013330a000d7702d8fa

9 years agoMerge "Ensure proxy constructor is in dex cache"
Sebastien Hertz [Thu, 28 Aug 2014 16:50:17 +0000 (16:50 +0000)]
Merge "Ensure proxy constructor is in dex cache"

9 years agoEnsure proxy constructor is in dex cache
Sebastien Hertz [Wed, 27 Aug 2014 13:32:56 +0000 (15:32 +0200)]
Ensure proxy constructor is in dex cache

Bug: 17262039

Change-Id: I879341fa9c66f18ec64d6d4bf6a222a452c27739

9 years agoMerge "Fix gcstress and gcverify test targets"
Ian Rogers [Wed, 27 Aug 2014 23:12:35 +0000 (23:12 +0000)]
Merge "Fix gcstress and gcverify test targets"

9 years agoFix gcstress and gcverify test targets
Alex Light [Wed, 27 Aug 2014 23:08:57 +0000 (16:08 -0700)]
Fix gcstress and gcverify test targets

Make the build system look at the right variables to determine if these
should be on.

Change-Id: Iede993714eee773716cdc99181b10b280e96ca2a

9 years agoMerge "ART: Change temporaries to positive names"
Bill Buzbee [Wed, 27 Aug 2014 21:33:14 +0000 (21:33 +0000)]
Merge "ART: Change temporaries to positive names"

9 years agoMerge "Handle nested signals"
Dave Allison [Wed, 27 Aug 2014 21:18:03 +0000 (21:18 +0000)]
Merge "Handle nested signals"

9 years agoHandle nested signals
Dave Allison [Tue, 26 Aug 2014 18:07:58 +0000 (11:07 -0700)]
Handle nested signals

This allows for signals to be raised inside the ART signal handler.
This can occur when the JavaStackTraceHandler attempts to generate
a stack trace and something goes wrong.

It also fixes an issue where the fault manager was not being
correctly shut down inside the signal chaining code.  In this
case the signal handler was not restored to the original.

Bug: 17006816
Bug: 17133266

(cherry picked from commit fabe91e0d558936ac26b98d2b4ee1af08f58831d)

Change-Id: I10730ef52d5d8d34610a5293253b3be6caf4829e