OSDN Git Service

android-x86/dalvik.git
13 years agoMerge "Intrinsics for float/int and double/long conversions." into dalvik-dev
Elliott Hughes [Tue, 24 Aug 2010 17:40:01 +0000 (10:40 -0700)]
Merge "Intrinsics for float/int and double/long conversions." into dalvik-dev

13 years agoam 042876de: am 39796a6a: am 30febfdf: Merge remote branch \'goog/dalvik-dev\' into...
Brian Carlstrom [Tue, 24 Aug 2010 16:14:53 +0000 (09:14 -0700)]
am 042876de: am 39796a6a: am 30febfdf: Merge remote branch \'goog/dalvik-dev\' into dalvik-dev-to-gingerbread

Merge commit '042876deaa858c1087285366db0a4971917a431e' into dalvik-dev

* commit '042876deaa858c1087285366db0a4971917a431e':

13 years agoam 39796a6a: am 30febfdf: Merge remote branch \'goog/dalvik-dev\' into dalvik-dev...
Brian Carlstrom [Tue, 24 Aug 2010 16:03:08 +0000 (09:03 -0700)]
am 39796a6a: am 30febfdf: Merge remote branch \'goog/dalvik-dev\' into dalvik-dev-to-gingerbread

Merge commit '39796a6aa79f687ac0b1254f6a8be048ad1243d8'

* commit '39796a6aa79f687ac0b1254f6a8be048ad1243d8': (26 commits)
  Remove an assertion that cannot be guaranteed.
  Always support debugging and profiling.
  Fix a critical space leak introduced by concurrent sweeping.
  Add a little bit of paranoia to the odex data reader.
  Nudge a couple of log messages.
  Fix build breakage caused by the countInstancesOfClass change.
  Add a method for counting the extant instances of a class.
  Added fsync call to dexopt.
  JIT: Fix for armv5te-VFP bug [Issue 2916682]
  Cast to a byte pointer before performing arithmetic.
  Limit scanning to cards within the committed region of the heap.
  Remove a malfunctioning predicate used only in assertions.
  Remove debugging code and stale comments from the sweep callback.
  Fix build breakage caused by a bad merge from master.
  JIT: Correct conversion of cb[n]z to cmp/cond_br pair
  Print callee information in the JIT profile outout
  JIT: Fix for lightweight assembler retry mechanism.
  JIT: Fix for 2898397 assert in JIT (chain cell offset)
  More SMP fixes.
  Fix some potential SMP issues.
  ...

13 years agoIntrinsics for float/int and double/long conversions.
Elliott Hughes [Sat, 21 Aug 2010 01:47:36 +0000 (18:47 -0700)]
Intrinsics for float/int and double/long conversions.

Bug: 2935622
Change-Id: I0f9e564f1f94ccf6596a37a6f1c10253481d5062

13 years agoam a18a7965: libdl should not be included in the simulator build
Brian Carlstrom [Mon, 23 Aug 2010 15:28:49 +0000 (08:28 -0700)]
am a18a7965: libdl should not be included in the simulator build

Merge commit 'a18a79655d6742a7a21764c8d84013c84e012ced' into dalvik-dev

* commit 'a18a79655d6742a7a21764c8d84013c84e012ced':
  libdl should not be included in the simulator build

13 years agoam 3c4760fe: am 1310319f: am 3e9bfe0b: Support dalvikvm on a Linux x86 host
Jesse Wilson [Mon, 23 Aug 2010 07:02:56 +0000 (00:02 -0700)]
am 3c4760fe: am 1310319f: am 3e9bfe0b: Support dalvikvm on a Linux x86 host

Merge commit '3c4760fe40ea292c0cadd4aad6b33f6d0eafeeb3' into dalvik-dev

* commit '3c4760fe40ea292c0cadd4aad6b33f6d0eafeeb3':
  Support dalvikvm on a Linux x86 host

13 years agolibdl should not be included in the simulator build
Brian Carlstrom [Sun, 22 Aug 2010 18:13:56 +0000 (11:13 -0700)]
libdl should not be included in the simulator build

Change-Id: Ib286e74d4baf035f6427bb00468171c8c86b6879

13 years agoam 1310319f: am 3e9bfe0b: Support dalvikvm on a Linux x86 host
Jesse Wilson [Sat, 21 Aug 2010 16:36:30 +0000 (09:36 -0700)]
am 1310319f: am 3e9bfe0b: Support dalvikvm on a Linux x86 host

Merge commit '1310319f0f89c1fc2890657aaa1f0b0ac30e099f'

* commit '1310319f0f89c1fc2890657aaa1f0b0ac30e099f':
  Support dalvikvm on a Linux x86 host

13 years agoam 95a48a0b: manual merge
Jean-Baptiste Queru [Sat, 21 Aug 2010 02:08:26 +0000 (19:08 -0700)]
am 95a48a0b: manual merge

Merge commit '95a48a0bdcdcd63d4323fa7a970ec5aafbc81bda' into dalvik-dev

* commit '95a48a0bdcdcd63d4323fa7a970ec5aafbc81bda':
  Fix dx launching script to use the new platform-tools location.

13 years agomanual merge
Jean-Baptiste Queru [Sat, 21 Aug 2010 01:53:43 +0000 (18:53 -0700)]
manual merge

Change-Id: I8f680ec1b2e29bd0acde675a2ab4ffd65c7ce84e

13 years agoam 30febfdf: Merge remote branch \'goog/dalvik-dev\' into dalvik-dev-to-gingerbread
Brian Carlstrom [Fri, 20 Aug 2010 20:52:14 +0000 (13:52 -0700)]
am 30febfdf: Merge remote branch \'goog/dalvik-dev\' into dalvik-dev-to-gingerbread

Merge commit '30febfdf4abe39f99dec100de968cb831b555b27' into gingerbread-plus-aosp

* commit '30febfdf4abe39f99dec100de968cb831b555b27': (34 commits)
  Remove an assertion that cannot be guaranteed.
  Always support debugging and profiling.
  Fix a critical space leak introduced by concurrent sweeping.
  Add a little bit of paranoia to the odex data reader.
  Nudge a couple of log messages.
  Fix build breakage caused by the countInstancesOfClass change.
  Add a method for counting the extant instances of a class.
  Added fsync call to dexopt.
  JIT: Fix for armv5te-VFP bug [Issue 2916682]
  Cast to a byte pointer before performing arithmetic.
  Limit scanning to cards within the committed region of the heap.
  Remove a malfunctioning predicate used only in assertions.
  Remove debugging code and stale comments from the sweep callback.
  Fix build breakage caused by a bad merge from master.
  JIT: Correct conversion of cb[n]z to cmp/cond_br pair
  Sweep concurrently.
  Implement card table verification.
  Fix the ordering of lock acquisition in the heap worker.
  Print callee information in the JIT profile outout
  JIT: Fix for lightweight assembler retry mechanism.
  ...

13 years agoMerge remote branch 'goog/dalvik-dev' into dalvik-dev-to-gingerbread
Brian Carlstrom [Thu, 19 Aug 2010 18:21:12 +0000 (11:21 -0700)]
Merge remote branch 'goog/dalvik-dev' into dalvik-dev-to-gingerbread

Also includes cherry-pick of 07ecdc0b5d92099364eebdaee9aec297c4bbad72

Change-Id: Ie1744d78683f2f66dd1586f453f8bdd56ad2e9a5

13 years agoMerge "JIT: Disable inlining to work around sholes boot crash" into dalvik-dev
buzbee [Fri, 20 Aug 2010 19:05:28 +0000 (12:05 -0700)]
Merge "JIT: Disable inlining to work around sholes boot crash" into dalvik-dev

13 years agoMerge "Consistently refer to the mark context as ctx." into dalvik-dev
Carl Shapiro [Fri, 20 Aug 2010 18:35:54 +0000 (11:35 -0700)]
Merge "Consistently refer to the mark context as ctx." into dalvik-dev

13 years agoConsistently refer to the mark context as ctx.
Carl Shapiro [Fri, 20 Aug 2010 18:34:18 +0000 (11:34 -0700)]
Consistently refer to the mark context as ctx.

Change-Id: Id34e414ea33c97526c20a68104e0dfe75104f85f

13 years agoJIT: Disable inlining to work around sholes boot crash
buzbee [Fri, 20 Aug 2010 18:08:12 +0000 (11:08 -0700)]
JIT: Disable inlining to work around sholes boot crash

There's no clear smoking gun, but I suspect the dalvik-dev
system-server boot crash on sholes devices is related to inlining.
Disabling inlining makes the problem go away (but so does a lot
of other small changes - so the jury is still out).

Change-Id: I5d0734f15c677cea55c5ddf5eef389101fb76a74

13 years agoCollapse a variable declaration and initialization.
Carl Shapiro [Fri, 20 Aug 2010 18:04:25 +0000 (11:04 -0700)]
Collapse a variable declaration and initialization.

Change-Id: Ie254422097d75f11a6baedb91a4fd94eeabc184e

13 years agoMerge "Combine a typedef with a struct declaration." into dalvik-dev
Carl Shapiro [Fri, 20 Aug 2010 17:12:03 +0000 (10:12 -0700)]
Merge "Combine a typedef with a struct declaration." into dalvik-dev

13 years agoMerge "Fix the exception thrown by getDeclaredFields if the class is unavailable...
Jesse Wilson [Fri, 20 Aug 2010 00:39:44 +0000 (17:39 -0700)]
Merge "Fix the exception thrown by getDeclaredFields if the class is unavailable." into dalvik-dev

13 years agoFix the exception thrown by getDeclaredFields if the class is unavailable.
Jesse Wilson [Fri, 20 Aug 2010 00:11:14 +0000 (17:11 -0700)]
Fix the exception thrown by getDeclaredFields if the class is unavailable.

http://b/issue?id=2634005

13 years agoCombine a typedef with a struct declaration.
Carl Shapiro [Thu, 19 Aug 2010 23:54:01 +0000 (16:54 -0700)]
Combine a typedef with a struct declaration.

Change-Id: I5bc2415bc6a5da542435c4e96c4eaf2d375e2503

13 years agoMinor nio cleanup.
Elliott Hughes [Thu, 19 Aug 2010 22:13:14 +0000 (15:13 -0700)]
Minor nio cleanup.

Remove an unused cached jmethodID from "Jni.c", and change "CheckJni.c" to
use the same direct field access that "Jni.c" was already using. (I noticed
this when removing the otherwise unused PlatformAddress.toLong method from
libcore.)

Also remove the now-meaningless double check that the direct field access
works.

Change-Id: I9ef3d5a0e2fd4feafc3925004cacb46fa9f28c17

13 years agoMerge "Properly handle volatile field accesses from JNI." into dalvik-dev
Andy McFadden [Thu, 19 Aug 2010 22:35:06 +0000 (15:35 -0700)]
Merge "Properly handle volatile field accesses from JNI." into dalvik-dev

13 years agoProperly handle volatile field accesses from JNI.
Andy McFadden [Wed, 18 Aug 2010 22:51:37 +0000 (15:51 -0700)]
Properly handle volatile field accesses from JNI.

For uniprocessors, we need to use the 64-bit quasiatomic functions.  For
SMP, we need to do that and also issue barriers on all operations.

This was mostly a matter of adding a bunch of inline getter/setter
functions and then calling the right one based on whether or not the
field is declared volatile.

Also, corrected the output for a failing CHECK_CLASS test in CheckJNI.

Bug 2890631.

Change-Id: Ib18ed1ce136eef03120ae70cacc39aa33df1490a

13 years agoUse symbolic constants when computing bits-per-word.
Carl Shapiro [Thu, 19 Aug 2010 21:29:41 +0000 (14:29 -0700)]
Use symbolic constants when computing bits-per-word.

Change-Id: Ia8e4f1681222f5f0982c4aa19a245c1fc87e6df4

13 years agoBitmap naming clean-up.
Carl Shapiro [Thu, 19 Aug 2010 04:04:31 +0000 (21:04 -0700)]
Bitmap naming clean-up.

Disambiguate bitmaps based on their use by adding a "curr" or "prev"
prefix.  Also, fix names in a prototype to match the definition.

Change-Id: Ic2a7151fa7a9575d892f659f325f5947a7afde7b

13 years agoRemove an assertion that cannot be guaranteed.
Carl Shapiro [Thu, 19 Aug 2010 01:10:05 +0000 (18:10 -0700)]
Remove an assertion that cannot be guaranteed.

The intention of this assert was to check that the address range
spanned by the mark bitmap was a proper superset of the live bitmap.
Because allocations can occur before these bitmaps are prepared, the
live bitmap may legitimately expand beyond the range of the mark
bitmap.  As such, this check is not reliable.

Change-Id: I2f23e9e7f3716a61ecf155ba81fd8baa5a82100d

13 years agoam 3e9bfe0b: Support dalvikvm on a Linux x86 host
Jesse Wilson [Thu, 19 Aug 2010 06:00:52 +0000 (23:00 -0700)]
am 3e9bfe0b: Support dalvikvm on a Linux x86 host

Merge commit '3e9bfe0bed2f27d01efdb03a71025c421d321956' into gingerbread-plus-aosp

* commit '3e9bfe0bed2f27d01efdb03a71025c421d321956':
  Support dalvikvm on a Linux x86 host

13 years agoSupport dalvikvm on a Linux x86 host
Jesse Wilson [Wed, 18 Aug 2010 18:35:23 +0000 (11:35 -0700)]
Support dalvikvm on a Linux x86 host

Change-Id: Id166ab03a01833e06ec1a9aa0059e4eb28ec04ce

13 years agoam ac830fea: Fix dx launching script to use the new platform-tools location.
Xavier Ducrohet [Thu, 19 Aug 2010 00:31:34 +0000 (17:31 -0700)]
am ac830fea: Fix dx launching script to use the new platform-tools location.

Merge commit 'ac830feace28957c9e84ce2cb0ed2a565bc24c99' into gingerbread-plus-aosp

* commit 'ac830feace28957c9e84ce2cb0ed2a565bc24c99':
  Fix dx launching script to use the new platform-tools location.

13 years agoFix dx launching script to use the new platform-tools location.
Xavier Ducrohet [Wed, 18 Aug 2010 22:42:19 +0000 (15:42 -0700)]
Fix dx launching script to use the new platform-tools location.

Change-Id: Ia4d316b0fb5193dc412aa5374fc270c5b10f70e5

13 years agoAlways support debugging and profiling.
Andy McFadden [Wed, 18 Aug 2010 19:19:51 +0000 (12:19 -0700)]
Always support debugging and profiling.

This eliminates the use of the WITH_DEBUGGER and WITH_PROFILER
conditional compilation flags.  We've never shipped a device without
these features, and it's unlikely we ever will.  They're not worth
the code clutter they cause.

As usual, since I can't test the x86-atom code I left that alone and
added an item to the TODO list.

Bug 2923442.

Change-Id: I335ebd5193bc86f7641513b1b41c0378839be1fe

13 years agoMerge "Nudge a couple of log messages." into dalvik-dev
Andy McFadden [Wed, 18 Aug 2010 14:45:17 +0000 (07:45 -0700)]
Merge "Nudge a couple of log messages." into dalvik-dev

13 years agoMerge "Fix a critical space leak introduced by concurrent sweeping." into dalvik-dev
Carl Shapiro [Wed, 18 Aug 2010 05:47:23 +0000 (22:47 -0700)]
Merge "Fix a critical space leak introduced by concurrent sweeping." into dalvik-dev

13 years agoFix a critical space leak introduced by concurrent sweeping.
Carl Shapiro [Wed, 18 Aug 2010 01:33:56 +0000 (18:33 -0700)]
Fix a critical space leak introduced by concurrent sweeping.

When computing the bitmaps for each heap, the live bitmap was assumed
to have greater extent than the mark bitmap.  With the concurrent
sweep the mark and live bitmaps are swapped before the sweep bitmaps
are computed.  As such, the live bitmap extent is always less than or
equal to the mark bitmap.  A benchmark which loops creating objects
just to drop them on the floor will exclude most objects in the heap
as candidates for sweeping and will exhaust the heap.

The change fixes the extent computation and reintroduces an assert to
check that the bitmap we assume to be the largest is the largest.

Change-Id: I78694d2a0550de70c85e2087d482050a147a207a

13 years agoMerge "Add a little bit of paranoia to the odex data reader." into dalvik-dev
Dan Bornstein [Tue, 17 Aug 2010 22:06:15 +0000 (15:06 -0700)]
Merge "Add a little bit of paranoia to the odex data reader." into dalvik-dev

13 years agoAdd a little bit of paranoia to the odex data reader.
Dan Bornstein [Tue, 17 Aug 2010 00:11:06 +0000 (17:11 -0700)]
Add a little bit of paranoia to the odex data reader.

This prevents some potential segfaults when working with (e.g., trying
to run) corrupted dex files, turning them into more informative error
messages.

Change-Id: Ie6845087bb17a5f65fafbd6f9ff335b6af489996

13 years agoNudge a couple of log messages.
Andy McFadden [Tue, 17 Aug 2010 00:04:01 +0000 (17:04 -0700)]
Nudge a couple of log messages.

Also, don't show errno on a short read.

Related to bug 2916809.

Change-Id: I163906d47b698ac5e77202c323db5823196169bb

13 years agoFix build breakage caused by the countInstancesOfClass change.
Carl Shapiro [Tue, 17 Aug 2010 20:30:48 +0000 (13:30 -0700)]
Fix build breakage caused by the countInstancesOfClass change.

There is an apparent visibility skew between passion-eng and sim-eng
builds.  On sim-eng, the contents of Heap.h are globally visible but
on passion-eng this is not the case.  To resolve this issue, I have
moved the offending declarations to alloc/Alloc.h which is directly
exported from Dalvik.h.

Change-Id: Iaf6f167964f81f24fa0817aa4a84b9fb4ff9a9a0

13 years agoMerge "Add a method for counting the extant instances of a class." into dalvik-dev
Carl Shapiro [Tue, 17 Aug 2010 19:24:44 +0000 (12:24 -0700)]
Merge "Add a method for counting the extant instances of a class." into dalvik-dev

13 years agoAdd a method for counting the extant instances of a class.
Carl Shapiro [Tue, 17 Aug 2010 19:22:49 +0000 (12:22 -0700)]
Add a method for counting the extant instances of a class.

This facility should supersede the use of finalizers in computing
instance counts for the "adb shell dumpsys meminfo" reports.

Change-Id: I026e7083e39aa296bbbcf665231ec20d6b37cdf6

13 years agoMerge "Added fsync call to dexopt." into dalvik-dev
Andy McFadden [Tue, 17 Aug 2010 17:06:58 +0000 (10:06 -0700)]
Merge "Added fsync call to dexopt." into dalvik-dev

13 years agoAdded fsync call to dexopt.
Andy McFadden [Mon, 16 Aug 2010 23:14:06 +0000 (16:14 -0700)]
Added fsync call to dexopt.

If various system-level things go wrong you might end up with a
correctly-written .odex header but an incomplete file, which ideally
would never happen.  This adds an fsync() call before we write the
header to make this less likely.

Change-Id: Ie5ac67dc7185ca9a4995710688e1219e46477c12

13 years agoam bce36059: am 52d4cd28: Rename registers on inlined instructions that use wide...
Ben Cheng [Mon, 16 Aug 2010 22:31:48 +0000 (15:31 -0700)]
am bce36059: am 52d4cd28: Rename registers on inlined instructions that use wide operands.

Merge commit 'bce36059dd1021b0cd06c02c3a9849ae6da4741b' into dalvik-dev

* commit 'bce36059dd1021b0cd06c02c3a9849ae6da4741b':
  Rename registers on inlined instructions that use wide operands.

13 years agoam 52d4cd28: Rename registers on inlined instructions that use wide operands.
Ben Cheng [Mon, 16 Aug 2010 22:19:46 +0000 (15:19 -0700)]
am 52d4cd28: Rename registers on inlined instructions that use wide operands.

Merge commit '52d4cd28a5d6d946934704e11e1d41450c10aa05'

* commit '52d4cd28a5d6d946934704e11e1d41450c10aa05':
  Rename registers on inlined instructions that use wide operands.

13 years agoRename registers on inlined instructions that use wide operands.
Ben Cheng [Mon, 16 Aug 2010 21:08:49 +0000 (14:08 -0700)]
Rename registers on inlined instructions that use wide operands.

For example, v1 in the callee should be v7 in the caller.

Before:
div-double v7, v8, v10
iput-wide-quick (C) v1, v6, (#136) <- v1 should be renamed
invoke-virtual-quick (PI) v6, v7, v8

After:
div-double v7, v8, v10
iput-wide-quick (C) v7, v6, (#136)
invoke-virtual-quick (PI) v6, v7, v8

Bug: 2907602

Change-Id: I21b9a45f8e422148d45de98c1ec9acbfd9783cc6

13 years agoJIT: Fix for armv5te-VFP bug [Issue 2916682]
buzbee [Sat, 14 Aug 2010 00:52:46 +0000 (17:52 -0700)]
JIT: Fix for armv5te-VFP bug [Issue 2916682]

Temp register was clobbered after explicit use rather than before.
Affects only armv5te-vfp builds.

Change-Id: I0a1c3f69a299f31bd50f3ec95ae83681b89ae6f1

13 years agoCast to a byte pointer before performing arithmetic.
Carl Shapiro [Thu, 12 Aug 2010 20:55:06 +0000 (13:55 -0700)]
Cast to a byte pointer before performing arithmetic.

Change-Id: I1efd3b327b8c0a052c975ed07ee0db648ba84581

13 years agoLimit scanning to cards within the committed region of the heap.
Carl Shapiro [Thu, 12 Aug 2010 18:24:44 +0000 (11:24 -0700)]
Limit scanning to cards within the committed region of the heap.

The initial implementation of the card scanning routine scanned all
cards in the card table.  For heaps that are less than the maximum
allowed size time was wasted scanning cards that are never dirtied.

Change-Id: I599c53a1777bf38b4d7b19438eb7584f9ba578ec

13 years agoMerge "Remove a malfunctioning predicate used only in assertions." into dalvik-dev
Carl Shapiro [Wed, 11 Aug 2010 02:23:22 +0000 (19:23 -0700)]
Merge "Remove a malfunctioning predicate used only in assertions." into dalvik-dev

13 years agoRemove a malfunctioning predicate used only in assertions.
Carl Shapiro [Wed, 11 Aug 2010 01:07:44 +0000 (18:07 -0700)]
Remove a malfunctioning predicate used only in assertions.

This check thought it filtered pointers aligned on 4-byte boundaries
and inclusion in the heap but actually checked for pointers on 8-byte
boundaries.  Both checks surround storing method call return values
which are gauranteed to be stack allocated.

Change-Id: I9cfd9eb06c5bd1d5cf55b372771da20425c56406

13 years agoRemove debugging code and stale comments from the sweep callback.
Carl Shapiro [Wed, 11 Aug 2010 00:28:12 +0000 (17:28 -0700)]
Remove debugging code and stale comments from the sweep callback.

Change-Id: Idf5e26354179a0d8c519c85880ad218603878722

13 years agoFix build breakage caused by a bad merge from master.
Carl Shapiro [Wed, 11 Aug 2010 00:20:15 +0000 (17:20 -0700)]
Fix build breakage caused by a bad merge from 

Change-Id: I2da195733b3c78fea2865b0bdc0b5a5bf9ec60fe

13 years agoMerge "JIT: Correct conversion of cb[n]z to cmp/cond_br pair" into dalvik-dev
buzbee [Tue, 10 Aug 2010 23:26:24 +0000 (16:26 -0700)]
Merge "JIT: Correct conversion of cb[n]z to cmp/cond_br pair" into dalvik-dev

13 years agoam 8881a809: Sweep concurrently.
Carl Shapiro [Tue, 10 Aug 2010 23:16:57 +0000 (16:16 -0700)]
am 8881a809: Sweep concurrently.

Merge commit '8881a8098e259a1faf392d20c1fefc1ee4a63b20' into dalvik-dev

* commit '8881a8098e259a1faf392d20c1fefc1ee4a63b20':
  Sweep concurrently.

13 years agoJIT: Correct conversion of cb[n]z to cmp/cond_br pair
buzbee [Tue, 10 Aug 2010 22:50:34 +0000 (15:50 -0700)]
JIT: Correct conversion of cb[n]z to cmp/cond_br pair

This fixes the regression introduced in the fast assembly retry
that was causing excessive bailouts.  The good news is that with
this fix, we're seeing a ~5% boost in Linpack because of the
cb[n]z usage.

Change-Id: Ib4a48dcba809af4343456eae49a90b4a1e3aee9d

13 years agoSweep concurrently.
Carl Shapiro [Tue, 10 Aug 2010 22:55:45 +0000 (15:55 -0700)]
Sweep concurrently.

After marking, exchange the mark and live bitmaps and resume all
threads.  The sweep proceeds concurrently viewing the new live bitmap
as the old mark bitmap thereby permitting allocations performed while
sweeping to update the live bitmap.

Change-Id: I9c307190a14ce417413175db016be41c38aeeaf3

13 years agoam cb7c47d0: am d012d06b: Fix the ordering of lock acquisition in the heap worker.
Carl Shapiro [Tue, 10 Aug 2010 03:10:35 +0000 (20:10 -0700)]
am cb7c47d0: am d012d06b: Fix the ordering of lock acquisition in the heap worker.

Merge commit 'cb7c47d047f80952a69f1d2a7200c589754b4870' into dalvik-dev

* commit 'cb7c47d047f80952a69f1d2a7200c589754b4870':
  Fix the ordering of lock acquisition in the heap worker.

13 years agoam 577a8269: am 34bfe020: Fix a couple copyright headers that aren\'t in the prescrib...
Dan Bornstein [Tue, 10 Aug 2010 03:10:30 +0000 (20:10 -0700)]
am 577a8269: am 34bfe020: Fix a couple copyright headers that aren\'t in the prescribed format.

Merge commit '577a826937acddadafd9b901dbafdec27d4613fc' into dalvik-dev

* commit '577a826937acddadafd9b901dbafdec27d4613fc':
  Fix a couple copyright headers that aren't in the prescribed format.

13 years agoam d012d06b: Fix the ordering of lock acquisition in the heap worker.
Carl Shapiro [Tue, 10 Aug 2010 02:57:04 +0000 (19:57 -0700)]
am d012d06b: Fix the ordering of lock acquisition in the heap worker.

Merge commit 'd012d06b0673c3da9d23b1816ff5a325576eb9b3'

* commit 'd012d06b0673c3da9d23b1816ff5a325576eb9b3':
  Fix the ordering of lock acquisition in the heap worker.

13 years agoam 34bfe020: Fix a couple copyright headers that aren\'t in the prescribed format.
Dan Bornstein [Tue, 10 Aug 2010 02:57:01 +0000 (19:57 -0700)]
am 34bfe020: Fix a couple copyright headers that aren\'t in the prescribed format.

Merge commit '34bfe020eccbe4034322c5952012612b0540acb3'

* commit '34bfe020eccbe4034322c5952012612b0540acb3':
  Fix a couple copyright headers that aren't in the prescribed format.

13 years agoFix the ordering of lock acquisition in the heap worker.
Carl Shapiro [Fri, 6 Aug 2010 22:17:46 +0000 (15:17 -0700)]
Fix the ordering of lock acquisition in the heap worker.

A feature of the concurrent GC is that gcHeapLock is released while
roots are traced through.  This complicates the heap worker thread as
it assumes that when the gcHeapLock can be acquired no threads are
contending for the heapWorkerLock.  However, the concurrent GC holds
heapWorkerLock for the duration of a GC.  If the heap worker thread
becomes active while the GC temporarily release gcHeapLock it may
deadlock the GC by acquring the gcHeapLock, needed by the GC during
its final pause, and wait for the heapWorkerLock held by the GC.

This change attempts to resolve this issue by checking to see if after
a transition into running whether the GC has become active.  If so, it
releases gcHeapLock and reacquires it after the GC has signaled
completion.  This must be done in a loop as there is no guarantee that
the GC has not become active when heap worker is rescheduled.

13 years agoFix a couple copyright headers that aren't in the prescribed format.
Dan Bornstein [Wed, 4 Aug 2010 01:09:42 +0000 (18:09 -0700)]
Fix a couple copyright headers that aren't in the prescribed format.

Change-Id: I4de4dc69d8989f1add431e58533c7e633f67e550

13 years agoam ff3cc1d1: Merge "Fix the ordering of lock acquisition in the heap worker."
Carl Shapiro [Mon, 9 Aug 2010 21:18:01 +0000 (14:18 -0700)]
am ff3cc1d1: Merge "Fix the ordering of lock acquisition in the heap worker."

Merge commit 'ff3cc1d1dfb03da6065879d26089d6f2ca129dcc' into dalvik-dev

* commit 'ff3cc1d1dfb03da6065879d26089d6f2ca129dcc':
  Fix the ordering of lock acquisition in the heap worker.

13 years agoMerge "Fix the ordering of lock acquisition in the heap worker."
Carl Shapiro [Mon, 9 Aug 2010 21:15:11 +0000 (14:15 -0700)]
Merge "Fix the ordering of lock acquisition in the heap worker."

13 years agoam 5ba39376: Implement card table verification.
Carl Shapiro [Mon, 9 Aug 2010 20:40:12 +0000 (13:40 -0700)]
am 5ba39376: Implement card table verification.

Merge commit '5ba39376c5b7a5878f234a689a51c74783583b4b' into dalvik-dev

* commit '5ba39376c5b7a5878f234a689a51c74783583b4b':
  Implement card table verification.

13 years agoImplement card table verification.
Carl Shapiro [Sat, 7 Aug 2010 00:07:53 +0000 (17:07 -0700)]
Implement card table verification.

Card table verification occurs just before scanning the card table
during a concurrent GC.  Each object in the bitmap is visited and the
number of white (unmarked) references are counted.  If an object has
unmarked objects it is by definition gray and must reside on a dirty
card.  If the object is not on a dirty card, the verification routine
aborts the VM.

Because the processing of weak roots and references has yet to occur,
reachable reference objects with unmarked referents and weak interned
strings may still be gray.  These objects are checked during the card
table scan and ignored if their card is not dirty.

Change-Id: I64d145aa4719fb52eb9e3bb91efaf4dcfacd6e0c

13 years agoMerge "Print callee information in the JIT profile outout" into dalvik-dev
Ben Cheng [Mon, 9 Aug 2010 18:30:50 +0000 (11:30 -0700)]
Merge "Print callee information in the JIT profile outout" into dalvik-dev

13 years agoam 6a7a5c24: Merge "Remove stale comments."
Carl Shapiro [Sat, 7 Aug 2010 01:54:29 +0000 (18:54 -0700)]
am 6a7a5c24: Merge "Remove stale comments."

Merge commit '6a7a5c2475f7d6c179cb671778d08461e585dbd3' into dalvik-dev

* commit '6a7a5c2475f7d6c179cb671778d08461e585dbd3':
  Remove stale comments.

13 years agoam 1ff61c3d: Merge "Rename verifyHeap and eliminate its bogus function-level comment."
Carl Shapiro [Sat, 7 Aug 2010 01:54:25 +0000 (18:54 -0700)]
am 1ff61c3d: Merge "Rename verifyHeap and eliminate its bogus function-level comment."

Merge commit '1ff61c3df16591b6b2022e287862c7a38009b4c7' into dalvik-dev

* commit '1ff61c3df16591b6b2022e287862c7a38009b4c7':
  Rename verifyHeap and eliminate its bogus function-level comment.

13 years agoFix the ordering of lock acquisition in the heap worker.
Carl Shapiro [Fri, 6 Aug 2010 22:17:46 +0000 (15:17 -0700)]
Fix the ordering of lock acquisition in the heap worker.

A feature of the concurrent GC is that gcHeapLock is released while
roots are traced through.  This complicates the heap worker thread as
it assumes that when the gcHeapLock can be acquired no threads are
contending for the heapWorkerLock.  However, the concurrent GC holds
heapWorkerLock for the duration of a GC.  If the heap worker thread
becomes active while the GC temporarily release gcHeapLock it may
deadlock the GC by acquring the gcHeapLock, needed by the GC during
its final pause, and wait for the heapWorkerLock held by the GC.

This change attempts to resolve this issue by checking to see if after
a transition into running whether the GC has become active.  If so, it
releases gcHeapLock and reacquires it after the GC has signaled
completion.  This must be done in a loop as there is no guarantee that
the GC has not become active when heap worker is rescheduled.

Change-Id: Ia30481cc597cea837529eab4f85ba86b02691efe

13 years agoPrint callee information in the JIT profile outout
Ben Cheng [Fri, 6 Aug 2010 23:42:50 +0000 (16:42 -0700)]
Print callee information in the JIT profile outout

For example:
TRACEPROFILE 0x48bbb2d4      11057  0.55% [0x45d(+1), 14011] ...
    -> Ljava/util/HashMap$HashIterator;hasNext;()Z

It means the trace ends with a call to hasNext(), and inlining
probably won't help the overall performance more than 0.55%.

Change-Id: I9bf2a79c48d6cb569a9fe2e329022edf968664bb

13 years agoMerge "JIT: Fix for lightweight assembler retry mechanism." into dalvik-dev
buzbee [Fri, 6 Aug 2010 21:27:18 +0000 (14:27 -0700)]
Merge "JIT: Fix for lightweight assembler retry mechanism." into dalvik-dev

13 years agoJIT: Fix for lightweight assembler retry mechanism.
buzbee [Fri, 6 Aug 2010 21:20:14 +0000 (14:20 -0700)]
JIT: Fix for lightweight assembler retry mechanism.

Removed a special path in the assembler that took in sideband
info on some instructions and used it to modify pc-relative load
addresses.  This mechanism (used in some older chaining cells) is
no longer needed, and was causing a problem for the new lightweight
assembler retry mechanism.

Change-Id: I1cca5b719bcdea0810831d889ebe2f935c61966f

13 years agoMerge "Fix some potential SMP issues." into dalvik-dev
Andy McFadden [Fri, 6 Aug 2010 18:26:45 +0000 (11:26 -0700)]
Merge "Fix some potential SMP issues." into dalvik-dev

13 years agoMerge "Remove stale comments."
Carl Shapiro [Fri, 6 Aug 2010 18:16:30 +0000 (11:16 -0700)]
Merge "Remove stale comments."

13 years agoMerge "Rename verifyHeap and eliminate its bogus function-level comment."
Carl Shapiro [Fri, 6 Aug 2010 18:16:21 +0000 (11:16 -0700)]
Merge "Rename verifyHeap and eliminate its bogus function-level comment."

13 years agoJIT: Fix for 2898397 assert in JIT (chain cell offset)
buzbee [Thu, 5 Aug 2010 23:34:36 +0000 (16:34 -0700)]
JIT: Fix for 2898397 assert in JIT (chain cell offset)

My previous change to allow for lightweight assembler retries neglected
to restore a sanity check cookie when re-assembling without fully rebuilding
the trace.

Change-Id: Ief7eb76263e272b9cd79345f8344bd35926f5b10

13 years agoMore SMP fixes.
Andy McFadden [Thu, 5 Aug 2010 21:34:26 +0000 (14:34 -0700)]
More SMP fixes.

Convert some ANDROID_MEMBAR_FULL uses into equivalent atomic ops.  A
couple of "bool" had to convert to "int" since we don't have atomic
ops for bools.

Replaced a local implementation of atomic inc with a call to the
atomic inc function.

Change-Id: I948b8080d743552bde014d3a6e716ed2c30ebef8

13 years agoam b0691476: Remove stale overwritefree flag.
Carl Shapiro [Fri, 6 Aug 2010 05:11:37 +0000 (22:11 -0700)]
am b0691476: Remove stale overwritefree flag.

Merge commit 'b0691476e24deae014dadbdbbceabc72d5a96ae6' into dalvik-dev

* commit 'b0691476e24deae014dadbdbbceabc72d5a96ae6':
  Remove stale overwritefree flag.

13 years agoRename verifyHeap and eliminate its bogus function-level comment.
Carl Shapiro [Fri, 6 Aug 2010 04:49:07 +0000 (21:49 -0700)]
Rename verifyHeap and eliminate its bogus function-level comment.

Change-Id: I09870de2710d03059faf6abce016e282865d2227

13 years agoFix some potential SMP issues.
Andy McFadden [Wed, 4 Aug 2010 23:09:10 +0000 (16:09 -0700)]
Fix some potential SMP issues.

Wandered through Thread.c looking for SMP trouble spots.  Changed a
couple of stores to android_atomic_release_store, and added some
comments.

Also, wrapped the self-suspend stuff that's in the thread status change
code so it only happens if we're actually going to suspend the thread.

Change-Id: I2d3feae7ce8937eada9111bd31928b61875a86d3

13 years agoRemove stale overwritefree flag.
Carl Shapiro [Fri, 6 Aug 2010 03:21:42 +0000 (20:21 -0700)]
Remove stale overwritefree flag.

Change-Id: If14998128245245c908b2390acfe28b82339f8bf

13 years agoam f98e0ed5: Merge "Add const qualifier to the dvmComputeStringHash signature."
Carl Shapiro [Fri, 6 Aug 2010 03:07:50 +0000 (20:07 -0700)]
am f98e0ed5: Merge "Add const qualifier to the dvmComputeStringHash signature."

Merge commit 'f98e0ed527d4b0b489bd714bb4e8606dde53973d' into dalvik-dev

* commit 'f98e0ed527d4b0b489bd714bb4e8606dde53973d':
  Add const qualifier to the dvmComputeStringHash signature.

13 years agoMerge "Add const qualifier to the dvmComputeStringHash signature."
Carl Shapiro [Fri, 6 Aug 2010 03:01:52 +0000 (20:01 -0700)]
Merge "Add const qualifier to the dvmComputeStringHash signature."

13 years agoAdd const qualifier to the dvmComputeStringHash signature.
Carl Shapiro [Fri, 6 Aug 2010 02:55:11 +0000 (19:55 -0700)]
Add const qualifier to the dvmComputeStringHash signature.

Change-Id: Icc963f324ca738438c069e99f346826d7f301095

13 years agoRemove stale comments.
Carl Shapiro [Fri, 6 Aug 2010 02:53:09 +0000 (19:53 -0700)]
Remove stale comments.

Change-Id: I7b7d822784ebf3b18ee8af6bd6acee220c285508

13 years agoTweaks to x86 mterp periodic checks [issue 2634642]
buzbee [Thu, 5 Aug 2010 21:04:54 +0000 (14:04 -0700)]
Tweaks to x86 mterp periodic checks [issue 2634642]

Update the x86 mterp main interpetation loop to match Arm and the portable
interpreter by checking for debugger/profiler after suspends.  Also,
enable ability to skip a load when checking for active debugger (both
Arm and x86).

Related cl: https://android-git.corp.google.com/g/#change,50229

Change-Id: Ic5d0f102b2250393eaf4405e4cafb7678b1a563e

13 years agoam ce82d2d1: am c9153114: Merge remote branch \'goog/dalvik-dev\' into dalvik-dev...
Brian Carlstrom [Thu, 5 Aug 2010 19:17:45 +0000 (12:17 -0700)]
am ce82d2d1: am c9153114: Merge remote branch \'goog/dalvik-dev\' into dalvik-dev-to-gingerbread

Merge commit 'ce82d2d1642e55ae62932003187cabc3f5db9e84' into dalvik-dev

* commit 'ce82d2d1642e55ae62932003187cabc3f5db9e84':

13 years agoam c9153114: Merge remote branch \'goog/dalvik-dev\' into dalvik-dev-to-gingerbread
Brian Carlstrom [Thu, 5 Aug 2010 19:12:44 +0000 (12:12 -0700)]
am c9153114: Merge remote branch \'goog/dalvik-dev\' into dalvik-dev-to-gingerbread

Merge commit 'c915311408e45b4687d230641382e025cf38805d'

* commit 'c915311408e45b4687d230641382e025cf38805d':
  Add a missing branch for inlined direct getters.
  Implement method inlining for getters/setters
  Switch -Xjnitrace over to using a custom JNI bridge.
  Change dvmHeapBitmapXorWalk to dvmHeapBitmapSweepWalk.
  Break apart the swapping of the mark and live bitmaps and zeroing of
  Fix a crash during VM shutdown.
  Update the atomics test for the new atomics API.
  Allow the VM to suspend while the heap worker initializes.

13 years agoMerge "JIT: Support for shift field in disassembler [issue 2465170]" into dalvik-dev
buzbee [Thu, 5 Aug 2010 18:09:07 +0000 (11:09 -0700)]
Merge "JIT: Support for shift field in disassembler [issue 2465170]" into dalvik-dev

13 years agoJIT: Support for shift field in disassembler [issue 2465170]
buzbee [Thu, 5 Aug 2010 18:01:12 +0000 (11:01 -0700)]
JIT: Support for shift field in disassembler [issue 2465170]

Many Thumb2 instructions allow for an optional shift to be applied to
operand 2.  This cl enhances the disassembler to show a non-zero shift
in the dump output.

Change-Id: I6cbfec46cd45e3f2acc9553f880e80764a1eb65d

13 years agoMerge "Move dvmFreeClassInnards responsibility." into dalvik-dev
Andy McFadden [Thu, 5 Aug 2010 14:42:01 +0000 (07:42 -0700)]
Merge "Move dvmFreeClassInnards responsibility." into dalvik-dev

13 years agoJIT: Reworked the assembler to be smarter about short instruction forms
buzbee [Wed, 4 Aug 2010 22:25:06 +0000 (15:25 -0700)]
JIT: Reworked the assembler to be smarter about short instruction forms

Previously, the JIT wasn't generating short-form compare and branch on
zero/not zero instructions for Thumb2.  The reason was that these only
allow a 1-byte displacement, and when they didn't reach the assembler would
abort the trace, split it in half and try again.  This change re-enables
cbz, cbnz generation and introduces a relatively lightweight retry
mechanism.

Also includes changes for Thumb2 to always generate large displacement
literal loads and conditional branches to minimize the number of retry
attempts.

Change-Id: Icf066836fad203f5c0fcbbb2ae8e1aa73d1cf816

13 years agoMerge remote branch 'goog/dalvik-dev' into dalvik-dev-to-gingerbread
Brian Carlstrom [Wed, 4 Aug 2010 22:37:09 +0000 (15:37 -0700)]
Merge remote branch 'goog/dalvik-dev' into dalvik-dev-to-gingerbread

13 years agoBug fixes for JIT loop detection and formation
Ben Cheng [Wed, 4 Aug 2010 20:23:09 +0000 (13:23 -0700)]
Bug fixes for JIT loop detection and formation

Specifically:
- Don't apply loop optimization if the basic induction variable is
  manipulated (ie excluding cases like "i+=0")
- Fix a case where variables reloaded with constants in the body are
  not considered as loop invariants

Bug: 2804188
Change-Id: Ia5ebb29bc6814b1be069e23794585f8313900b7d

13 years agoam baf196a7: Fix for 2892472 jit spew: No free temp registers
buzbee [Wed, 4 Aug 2010 21:11:11 +0000 (14:11 -0700)]
am baf196a7: Fix for 2892472 jit spew: No free temp registers

Merge commit 'baf196a7b259704137cccf4058b78da15d4c3998' into dalvik-dev

* commit 'baf196a7b259704137cccf4058b78da15d4c3998':
  Fix for 2892472 jit spew: No free temp registers

13 years agoMove dvmFreeClassInnards responsibility.
Andy McFadden [Wed, 4 Aug 2010 19:47:21 +0000 (12:47 -0700)]
Move dvmFreeClassInnards responsibility.

The GC has been responsible for ensuring that the "innards" of a
class object are freed before the ClassObject itself is discarded.
Since we don't currently unload classes, this situation can only arise
if something went wrong during the loading of a class (e.g. memory
alloc failure part way through), or another thread loaded the same
class at the same time and won the race.  It makes more sense to
have the cleanup occur at the point we decide that our class object
is not useful.

For the most part this was already being done, but there were a couple
of places where it wasn't.

This change
 - adds the missing dvmFreeClassInnards calls
 - changes the GC code to warn without taking action
 - enables the GC code only when assertions are enabled

The code in MarkSweep.c looks like it merits further rearranging, but
I'll leave that to Team GC.

Also, "dalvik_assert" is now only printed on the VM features line when
assertions are enabled.

For bug 2751668.

Change-Id: I90e4455e830766f94f921c7f23b44b423bce3321

13 years agoFix for 2892472 jit spew: No free temp registers
buzbee [Wed, 4 Aug 2010 17:13:15 +0000 (10:13 -0700)]
Fix for 2892472 jit spew: No free temp registers

Neglected some register allocation hygene, which caused a
problem on armv5te builds.

Change-Id: I666b39b88822c4d3d3d7f0e84386aca2920bb9f1

13 years agoMerge "New material for JNI Tips doc." into dalvik-dev
Andy McFadden [Wed, 4 Aug 2010 14:23:15 +0000 (07:23 -0700)]
Merge "New material for JNI Tips doc." into dalvik-dev