OSDN Git Service

android-x86/dalvik.git
13 years agomerge in honeycomb-release history after reset to honeycomb
The Android Automerger [Thu, 27 Jan 2011 15:26:07 +0000 (07:26 -0800)]
merge in honeycomb-release history after reset to honeycomb

13 years agoam 6ad1992b: (-s ours) am 70b130f5: (-s ours) Clean up/out some comments. DO NOT...
Dan Bornstein [Thu, 27 Jan 2011 05:55:38 +0000 (21:55 -0800)]
am 6ad1992b: (-s ours) am 70b130f5: (-s ours) Clean up/out some comments. DO NOT MERGE.

* commit '6ad1992b311937963d44be68f3ec0255a87d82b8':
  Clean up/out some comments. DO NOT MERGE.

13 years agoam f741b8e1: am 80a30431: (-s ours) Remove some pointless tests.
Dan Bornstein [Thu, 27 Jan 2011 05:48:09 +0000 (21:48 -0800)]
am f741b8e1: am 80a30431: (-s ours) Remove some pointless tests.

* commit 'f741b8e112834cb3c140ca81890dc41126649dee':
  Remove some pointless tests.

13 years agoam 76675cb5: am 9b6881c2: Fix accidental transposition of partial and concurrent...
Carl Shapiro [Thu, 27 Jan 2011 05:35:57 +0000 (21:35 -0800)]
am 76675cb5: am 9b6881c2: Fix accidental transposition of partial and concurrent values.

* commit '76675cb52e5d5ddeaefd81ec83841e0c503d3411':
  Fix accidental transposition of partial and concurrent values.

13 years agoam 9b6881c2: Fix accidental transposition of partial and concurrent values.
Carl Shapiro [Thu, 27 Jan 2011 05:16:31 +0000 (21:16 -0800)]
am 9b6881c2: Fix accidental transposition of partial and concurrent values.

* commit '9b6881c26d58a46e6478294d83554fb9e3a85625':
  Fix accidental transposition of partial and concurrent values.

13 years agoFix accidental transposition of partial and concurrent values.
Carl Shapiro [Thu, 27 Jan 2011 02:41:03 +0000 (18:41 -0800)]
Fix accidental transposition of partial and concurrent values.

In the event of an allocation failure a full, concurrent collection was
initiated instead of a partial, non-concurrent collection.  This change
assigns the correct boolean values to that settings.

These values should be made enums to ensure this does not happen again.

Bug: 3379352

Change-Id: I9336e8f832cf02e4a74745cd475914a0c312ea4e

13 years agoam a4c8f3fa: am d6b23e5c: Merge "Package garbage collection policy parameters into...
Carl Shapiro [Thu, 27 Jan 2011 03:13:02 +0000 (19:13 -0800)]
am a4c8f3fa: am d6b23e5c: Merge "Package garbage collection policy parameters into a single structure." into honeycomb

* commit 'a4c8f3fae538b56a003e0546b8c001d68873a650':
  Package garbage collection policy parameters into a single structure.

13 years agoam d6b23e5c: Merge "Package garbage collection policy parameters into a single struct...
Carl Shapiro [Thu, 27 Jan 2011 02:06:35 +0000 (18:06 -0800)]
am d6b23e5c: Merge "Package garbage collection policy parameters into a single structure." into honeycomb

* commit 'd6b23e5ca90e011b6ede0d3592922616df3e33ec':
  Package garbage collection policy parameters into a single structure.

13 years agoMerge "Package garbage collection policy parameters into a single structure." into...
Carl Shapiro [Thu, 27 Jan 2011 02:02:17 +0000 (18:02 -0800)]
Merge "Package garbage collection policy parameters into a single structure." into honeycomb

13 years agoPackage garbage collection policy parameters into a single structure.
Carl Shapiro [Thu, 27 Jan 2011 01:25:27 +0000 (17:25 -0800)]
Package garbage collection policy parameters into a single structure.

The garbage collection policy had been determined informally.  This change
defines the garbage collection behavior in a centralized location making it
clear how the system will behave when requesting a garbage collection in one
of the four common situations.  This change is required to allow us to change
the policy for an explicit garbage collection.

In addition, this change hoists out the thread priority toggle from the
main garbage collector routine into two simple subroutines making this
it much easier to read and spot behavior differences.

Bug: 3379352
Change-Id: If0d7d9ef337819598fb6e268f7a127f2bae23580

13 years agoMerge "Add runtime support for method based compilation." into dalvik-dev
Ben Cheng [Wed, 26 Jan 2011 22:27:10 +0000 (14:27 -0800)]
Merge "Add runtime support for method based compilation." into dalvik-dev

13 years agoam 4d7dd569: Handle the case of referent clearing during tracing.
Carl Shapiro [Wed, 26 Jan 2011 21:03:44 +0000 (13:03 -0800)]
am 4d7dd569: Handle the case of referent clearing during tracing.

* commit '4d7dd56902150ab8db4c20a191bad112928839e9':
  Handle the case of referent clearing during tracing.

13 years agoam 6159ef45: (-s ours) Parameterize instance counting to include subclasses.
Carl Shapiro [Wed, 26 Jan 2011 21:03:40 +0000 (13:03 -0800)]
am 6159ef45: (-s ours) Parameterize instance counting to include subclasses.

* commit '6159ef4520073ae8e7ce7b7d1f7648b161a33302':
  Parameterize instance counting to include subclasses.

13 years agoAdd runtime support for method based compilation.
Ben Cheng [Fri, 14 Jan 2011 19:36:46 +0000 (11:36 -0800)]
Add runtime support for method based compilation.

Enhanced code cache management to accommodate both trace and method
compilations. Also implemented a hacky dispatch routine for virtual
leaf methods.

Microbenchmark showed 3x speedup in leaf method invocation.

Change-Id: I79d95b7300ba993667b3aa221c1df9c7b0583521

13 years agomerge in honeycomb-release history after reset to honeycomb
The Android Automerger [Wed, 26 Jan 2011 15:26:18 +0000 (07:26 -0800)]
merge in honeycomb-release history after reset to honeycomb

13 years agoIncrease default stack size
Andy McFadden [Tue, 25 Jan 2011 20:26:41 +0000 (12:26 -0800)]
Increase default stack size

This increases the default stack size from 12KB to 16KB.

Bug 3388513

Change-Id: I7f7c3f75b749ca2145a96434e89e6500f79973e4

13 years agoam 6d07dea9: am ee875bb3: am 80e8d7f9: Increase default stack size
Andy McFadden [Tue, 25 Jan 2011 20:45:12 +0000 (12:45 -0800)]
am 6d07dea9: am ee875bb3: am 80e8d7f9: Increase default stack size

* commit '6d07dea9c38dc345f1326ddfdc6c2c1e73d0ac8c':
  Increase default stack size

13 years agoam ee875bb3: am 80e8d7f9: Increase default stack size
Andy McFadden [Tue, 25 Jan 2011 20:41:36 +0000 (12:41 -0800)]
am ee875bb3: am 80e8d7f9: Increase default stack size

* commit 'ee875bb3c019e278500c000cdd99b34e629e42eb':
  Increase default stack size

13 years agoam 80e8d7f9: Increase default stack size
Andy McFadden [Tue, 25 Jan 2011 20:38:42 +0000 (12:38 -0800)]
am 80e8d7f9: Increase default stack size

* commit '80e8d7f9ca9b49437bec6224162d7bb7f42392da':
  Increase default stack size

13 years agoIncrease default stack size
Andy McFadden [Tue, 25 Jan 2011 20:26:41 +0000 (12:26 -0800)]
Increase default stack size

This increases the default stack size from 12KB to 16KB.

Bug 3388513

Change-Id: I7f7c3f75b749ca2145a96434e89e6500f79973e4

13 years agoMerge "Allow dx to properly generate sub-const and rsub-const insns." into dalvik-dev
jeffhao [Tue, 25 Jan 2011 19:07:51 +0000 (11:07 -0800)]
Merge "Allow dx to properly generate sub-const and rsub-const insns." into dalvik-dev

13 years agoMerge "Fix armv5te-vfp build." into dalvik-dev
Ben Cheng [Tue, 25 Jan 2011 19:00:18 +0000 (11:00 -0800)]
Merge "Fix armv5te-vfp build." into dalvik-dev

13 years agoFix armv5te-vfp build.
Ben Cheng [Tue, 25 Jan 2011 18:58:02 +0000 (10:58 -0800)]
Fix armv5te-vfp build.

c++ dislikes variables named template.

Change-Id: I6aaf623b449bfdb0c88b9664c55824268992058d

13 years agoam 106a1671: am 704c48da: am a4313feb: Remove unprotected reads in the instance count...
Carl Shapiro [Tue, 25 Jan 2011 17:25:04 +0000 (09:25 -0800)]
am 106a1671: am 704c48da: am a4313feb: Remove unprotected reads in the instance counting routines.

* commit '106a1671b48fb0d7a52b9e50ca5efac66b028ccb':
  Remove unprotected reads in the instance counting routines.

13 years agoAllow dx to properly generate sub-const and rsub-const insns.
jeffhao [Tue, 25 Jan 2011 01:36:28 +0000 (17:36 -0800)]
Allow dx to properly generate sub-const and rsub-const insns.

Dx can now handle instructions of the form "reg - const" by converting
it into an equivalent add-const with negative constant. Also, dx can
handle instructions of the form "const - reg" by creating an rsub-const
instruction, which was previously unused.

Change-Id: I67d869b5e14b65f6bbd1daae8bf0c662296af5de

13 years agoam 704c48da: am a4313feb: Remove unprotected reads in the instance counting routines.
Carl Shapiro [Mon, 24 Jan 2011 21:32:44 +0000 (13:32 -0800)]
am 704c48da: am a4313feb: Remove unprotected reads in the instance counting routines.

* commit '704c48daff6bd4f1e824eccb7171c08d32b86ea1':
  Remove unprotected reads in the instance counting routines.

13 years agoam a4313feb: Remove unprotected reads in the instance counting routines.
Carl Shapiro [Mon, 24 Jan 2011 20:38:56 +0000 (12:38 -0800)]
am a4313feb: Remove unprotected reads in the instance counting routines.

* commit 'a4313feb23dd454905a3297bdc9ba745e6066a16':
  Remove unprotected reads in the instance counting routines.

13 years agoRemove unprotected reads in the instance counting routines.
Carl Shapiro [Mon, 24 Jan 2011 20:31:09 +0000 (12:31 -0800)]
Remove unprotected reads in the instance counting routines.

In the past, the instance counters would read the live bitmap, acquire
the heap lock, and then scan the live bitmap.  Reading the live bitmap
ahead of acquiring the heap lock gives the holder of the heap lock an
opportunity to invalidate the copy of the live bitmap read by the
instance counter routine.  For example, the garbage collector could
swap the mark and live bitmaps before releasing the heap lock.  This
change makes the read of the live bitmap safe by moving it into the
critical section.

Bug: 3271510
Change-Id: Ic02171e9ec3b4d24e83773199f00a18a75707427

13 years agoFix generic-eng (ARMv5) build.
Elliott Hughes [Mon, 24 Jan 2011 20:23:09 +0000 (12:23 -0800)]
Fix generic-eng (ARMv5) build.

Change-Id: I366df47ebb597a629cb50046320ee3a6230d1ed9

13 years agoMerge "Fix push/pop instruction selection and encoding." into dalvik-dev
Ben Cheng [Mon, 24 Jan 2011 18:33:14 +0000 (10:33 -0800)]
Merge "Fix push/pop instruction selection and encoding." into dalvik-dev

13 years agoFix push/pop instruction selection and encoding.
Ben Cheng [Mon, 24 Jan 2011 18:14:29 +0000 (10:14 -0800)]
Fix push/pop instruction selection and encoding.

1) Thumb 'push' can handle lr and 'pop' can handle pc, so make use of them.
2) Thumb2 push was incorrectly encoded as stmia, which should be stmdb
instead.

None of the above affect the code that we currently ship.

Change-Id: I89ab46b032a3d562355c2cc3bc05fe308ba40957

13 years agoam d5c9ba41: am e1a5956b: am 0eac12e0: Merge "Replace collect with clear for the...
Carl Shapiro [Mon, 24 Jan 2011 01:07:58 +0000 (17:07 -0800)]
am d5c9ba41: am e1a5956b: am 0eac12e0: Merge "Replace collect with clear for the SoftReference policy." into honeycomb

* commit 'd5c9ba412dfabea78ffd58722dd59af88c6d166e':
  Replace collect with clear for the SoftReference policy.

13 years agoam 6f22f6ba: am e1034238: am b387ce8a: Remove references to android_atomic_swap.
Carl Shapiro [Mon, 24 Jan 2011 01:07:53 +0000 (17:07 -0800)]
am 6f22f6ba: am e1034238: am b387ce8a: Remove references to android_atomic_swap.

* commit '6f22f6bac408e487bcf8fcfd25ef6263cfaefd57':
  Remove references to android_atomic_swap.

13 years agoam e1a5956b: am 0eac12e0: Merge "Replace collect with clear for the SoftReference...
Carl Shapiro [Mon, 24 Jan 2011 01:00:45 +0000 (17:00 -0800)]
am e1a5956b: am 0eac12e0: Merge "Replace collect with clear for the SoftReference policy." into honeycomb

* commit 'e1a5956bd9d3d7b89a09b554804c967a30c13932':
  Replace collect with clear for the SoftReference policy.

13 years agoam e1034238: am b387ce8a: Remove references to android_atomic_swap.
Carl Shapiro [Mon, 24 Jan 2011 01:00:43 +0000 (17:00 -0800)]
am e1034238: am b387ce8a: Remove references to android_atomic_swap.

* commit 'e10342385c9845cd82ac73c3b0d9b26c4a3dcd15':
  Remove references to android_atomic_swap.

13 years agoam 0eac12e0: Merge "Replace collect with clear for the SoftReference policy." into...
Carl Shapiro [Mon, 24 Jan 2011 00:07:52 +0000 (16:07 -0800)]
am 0eac12e0: Merge "Replace collect with clear for the SoftReference policy." into honeycomb

* commit '0eac12e0b26c3cdfa3d16e73cc8d7ebd889c846b':
  Replace collect with clear for the SoftReference policy.

13 years agoMerge "Replace collect with clear for the SoftReference policy." into honeycomb
Carl Shapiro [Mon, 24 Jan 2011 00:05:57 +0000 (16:05 -0800)]
Merge "Replace collect with clear for the SoftReference policy." into honeycomb

13 years agoReplace collect with clear for the SoftReference policy.
Carl Shapiro [Sun, 23 Jan 2011 23:58:31 +0000 (15:58 -0800)]
Replace collect with clear for the SoftReference policy.

The garbage collector is invoked with a parameter that changes the
SoftReference clearing policy.  This parameter is normally false,
meaning the garbage collector will attempt to preserve some
softly-reachable referents of SoftReference instances.  When true, the
garbage collector will treat SoftReference instances as WeakReference
instances and always clearly referent fields with softly-reachable
referents.

The code refers to this action as collecting soft references which is
misleading.  The change to the garbage collector policy has an effect
on the referent field of SoftReference instances and any SoftReference
instance which is unreachable is subject collection like any other
object.  With this change we now use the description clearing soft
refernces to describe the policy.

Bug: 3381480

Change-Id: Ie179514e68d4621237b08658c1c55811a49f1210

13 years agoam b387ce8a: Remove references to android_atomic_swap.
Carl Shapiro [Sun, 23 Jan 2011 23:58:49 +0000 (15:58 -0800)]
am b387ce8a: Remove references to android_atomic_swap.

* commit 'b387ce8ae1ffa0861be1ec94ba6c313203931a1b':
  Remove references to android_atomic_swap.

13 years agoRemove references to android_atomic_swap.
Carl Shapiro [Sun, 23 Jan 2011 23:24:34 +0000 (15:24 -0800)]
Remove references to android_atomic_swap.

Bug: 3381237

Change-Id: Iabca4be285082d804b0b206025bd4ca8e008ee42

13 years agoMade handling of sim exceptions nicer.
jeffhao [Fri, 21 Jan 2011 21:37:57 +0000 (13:37 -0800)]
Made handling of sim exceptions nicer.

Change-Id: I089512c046d90ea37da4a33433edc4ec308a628d

13 years agoam 4482a157: am d50993ff: am 6ff6ec6b: Fix dalvik test 084.
Andy McFadden [Thu, 20 Jan 2011 19:12:31 +0000 (11:12 -0800)]
am 4482a157: am d50993ff: am 6ff6ec6b: Fix dalvik test 084.

* commit '4482a1573b3ec0d3d312a8a6c1af52952d5d02d8':
  Fix dalvik test 084.

13 years agoam d50993ff: am 6ff6ec6b: Fix dalvik test 084.
Andy McFadden [Thu, 20 Jan 2011 19:00:23 +0000 (11:00 -0800)]
am d50993ff: am 6ff6ec6b: Fix dalvik test 084.

* commit 'd50993ff6ec834801d1442b0872de33f6d930c4d':
  Fix dalvik test 084.

13 years agoam 6ff6ec6b: Fix dalvik test 084.
Andy McFadden [Thu, 20 Jan 2011 18:58:21 +0000 (10:58 -0800)]
am 6ff6ec6b: Fix dalvik test 084.

* commit '6ff6ec6b6361db707e4b0318075fc38dd319a49a':
  Fix dalvik test 084.

13 years agoFix dalvik test 084.
Andy McFadden [Thu, 20 Jan 2011 18:41:57 +0000 (10:41 -0800)]
Fix dalvik test 084.

Two threads were waiting for initialization of a class to complete.
There was nothing encouraging one thread to resume execution first,
but on single-core devices it always worked out the same way.

Bug 3366697

Change-Id: I29430d398dfbd9509d7db2b7db2800d340b29d19

13 years agoMerge "Light refactoring of handleExecuteInline." into dalvik-dev
Elliott Hughes [Thu, 20 Jan 2011 18:12:50 +0000 (10:12 -0800)]
Merge "Light refactoring of handleExecuteInline." into dalvik-dev

13 years agoLight refactoring of handleExecuteInline.
Elliott Hughes [Thu, 20 Jan 2011 02:18:42 +0000 (18:18 -0800)]
Light refactoring of handleExecuteInline.

I wanted the code to JIT a call a C function extracted so I can potentially
use it elsewhere. The functions that sometimes JIT instructions directly and
other times bail out to C can now call this, simplifying the body of the
switch. I think there's a behavioral change here with the ThumbVFP
genInlineSqrt, which previously had the wrong return value.

Tested on passion to ensure that the performance characteristics of assembler
intrinsics, C intrinsics, and library native methods haven't changed (using
the Math and Float classes).

Change-Id: Id79771a31abe3a516f403486454e9c0d9793622a

13 years agoMerge "Support traceview-style profiling in all builds" into dalvik-dev
buzbee [Thu, 20 Jan 2011 17:22:08 +0000 (09:22 -0800)]
Merge "Support traceview-style profiling in all builds" into dalvik-dev

13 years agoam c99b53ca: am 94918db6: am 84547e16: Merge "Remove logging of memory management...
Carl Shapiro [Thu, 20 Jan 2011 06:42:38 +0000 (22:42 -0800)]
am c99b53ca: am 94918db6: am 84547e16: Merge "Remove logging of memory management statistics to the event log." into honeycomb

* commit 'c99b53ca275132337a941e47c693548ae48286d6':
  Remove logging of memory management statistics to the event log.

13 years agoresolved conflicts for merge of 5b1a7218 to dalvik-dev
Carl Shapiro [Thu, 20 Jan 2011 06:28:45 +0000 (22:28 -0800)]
resolved conflicts for merge of 5b1a7218 to dalvik-dev

Change-Id: I034801caaa259ad000021e9135121790b0ec9629

13 years agoam 94918db6: am 84547e16: Merge "Remove logging of memory management statistics to...
Carl Shapiro [Thu, 20 Jan 2011 01:26:44 +0000 (17:26 -0800)]
am 94918db6: am 84547e16: Merge "Remove logging of memory management statistics to the event log." into honeycomb

* commit '94918db6ac491d361f7d2fea63e88c67c16e8103':
  Remove logging of memory management statistics to the event log.

13 years agoam 84547e16: Merge "Remove logging of memory management statistics to the event log...
Carl Shapiro [Thu, 20 Jan 2011 01:24:14 +0000 (17:24 -0800)]
am 84547e16: Merge "Remove logging of memory management statistics to the event log." into honeycomb

* commit '84547e16cfef6e2f1ebe377a466e858a61b59e45':
  Remove logging of memory management statistics to the event log.

13 years agoMerge "Remove logging of memory management statistics to the event log." into honeycomb
Carl Shapiro [Thu, 20 Jan 2011 01:22:50 +0000 (17:22 -0800)]
Merge "Remove logging of memory management statistics to the event log." into honeycomb

13 years agoSupport traceview-style profiling in all builds
buzbee [Wed, 19 Jan 2011 23:31:15 +0000 (15:31 -0800)]
Support traceview-style profiling in all builds

This change builds on an earlier bccheng change that allowed JIT'd code
to avoid reverting to the debug portable interpeter when doing traceview-style
method profiling.  That CL introduced a new traceview build (libdvm_traceview)
because the performance delta was too great to enable the capability for
all builds.

In this CL, we remove the libdvm_traceview build and provide full-speed
method tracing in all builds.  This is done by introducing "_PROF"
versions of invoke and return templates used by the JIT.  Normally, these
templates are not used, and performace in unaffected.  However, when method
profiling is enabled, all existing translation are purged and new translations
are created using the _PROF templates.  These templates introduce a
smallish performance penalty above and beyond the actual tracing cost, but
again are only used when tracing has been enabled.

Strictly speaking, there is a slight burden that is placed on invokes and
returns in the non-tracing case - on the order of an additional 3 or 4
cycles per invoke/return.  Those operations are already heavyweight enough
that I was unable to measure the added cost in benchmarks.

Change-Id: Ic09baf4249f1e716e136a65458f4e06cea35fc18

13 years agoRemove logging of memory management statistics to the event log.
Carl Shapiro [Wed, 19 Jan 2011 23:37:31 +0000 (15:37 -0800)]
Remove logging of memory management statistics to the event log.

While the event log used to report better information than the logcat
log messages, this is no longer the case.

Change-Id: Iaf7bef5252c284c1a159bc8c0447247c5b5f47e4

13 years agoam 98ce90f3: am e39e28a8: Merge "Include -XX:DisableExplicitGC in the usage output...
Carl Shapiro [Wed, 19 Jan 2011 23:45:06 +0000 (15:45 -0800)]
am 98ce90f3: am e39e28a8: Merge "Include -XX:DisableExplicitGC in the usage output." into honeycomb

* commit '98ce90f3d007d77b8f7b65c987cc14dddb8cbfd6':
  Include -XX:DisableExplicitGC in the usage output.

13 years agoam e39e28a8: Merge "Include -XX:DisableExplicitGC in the usage output." into honeycomb
Carl Shapiro [Wed, 19 Jan 2011 23:42:58 +0000 (15:42 -0800)]
am e39e28a8: Merge "Include -XX:DisableExplicitGC in the usage output." into honeycomb

* commit 'e39e28a8451222714120406d998a6d776e62bc68':
  Include -XX:DisableExplicitGC in the usage output.

13 years agoMerge "Include -XX:DisableExplicitGC in the usage output." into honeycomb
Carl Shapiro [Wed, 19 Jan 2011 23:41:34 +0000 (15:41 -0800)]
Merge "Include -XX:DisableExplicitGC in the usage output." into honeycomb

13 years agoInclude -XX:DisableExplicitGC in the usage output.
Carl Shapiro [Wed, 19 Jan 2011 23:39:41 +0000 (15:39 -0800)]
Include -XX:DisableExplicitGC in the usage output.

Change-Id: I290d7b5762b616b02f59a653ac5a83388c299a93

13 years agoam f9c12c6d: am 9cef8218: am 836741f0: Merge "Change suspend order in GC" into honeycomb
Andy McFadden [Wed, 19 Jan 2011 23:36:55 +0000 (15:36 -0800)]
am f9c12c6d: am 9cef8218: am 836741f0: Merge "Change suspend order in GC" into honeycomb

* commit 'f9c12c6d0c0dba11ca5e4dd419344a7b7915c782':
  Change suspend order in GC

13 years agoam 9cef8218: am 836741f0: Merge "Change suspend order in GC" into honeycomb
Andy McFadden [Wed, 19 Jan 2011 23:34:09 +0000 (15:34 -0800)]
am 9cef8218: am 836741f0: Merge "Change suspend order in GC" into honeycomb

* commit '9cef82185def11b5d712961dabc66adf56913963':
  Change suspend order in GC

13 years agoam 836741f0: Merge "Change suspend order in GC" into honeycomb
Andy McFadden [Wed, 19 Jan 2011 23:32:01 +0000 (15:32 -0800)]
am 836741f0: Merge "Change suspend order in GC" into honeycomb

* commit '836741f0984579c415f63b39efae6ce5aa695bcd':
  Change suspend order in GC

13 years agoMerge "Change suspend order in GC" into honeycomb
Andy McFadden [Wed, 19 Jan 2011 23:30:18 +0000 (15:30 -0800)]
Merge "Change suspend order in GC" into honeycomb

13 years agoChange suspend order in GC
Andy McFadden [Wed, 19 Jan 2011 22:48:52 +0000 (14:48 -0800)]
Change suspend order in GC

The GC currently does this:

 1. acquire heapLock
 2. suspend all threads
 3. acquire heapWorkerLock

When the HeapWorker thread is suspended in #2, it might be holding
the lock we want in step #3, leading to VM deadlock.  This change
reverses the order of #2 and #3, which should allow the HeapWorker
thread to progress to a point where it releases the lock before
the GC requests the suspension.

If futexes are being unfair, the GC might have to wait a bit
longer while the HeapWorker does stuff (it might unlock, do work,
and re-lock without the scheduler giving time to the GC thread;
with the old scheme the HeapWorker would see the pending thread
suspension immediately and stop).  A better fix is planned.

Bug 3340837

Change-Id: Ib9b37c130903a2800f8f28ae61540a428dbfc5be

13 years agoam 044f1e87: am 0bd1ebdb: am 461d57dc: Merge "Add an option to disable explicit GC...
Carl Shapiro [Wed, 19 Jan 2011 22:37:34 +0000 (14:37 -0800)]
am 044f1e87: am 0bd1ebdb: am 461d57dc: Merge "Add an option to disable explicit GC requests." into honeycomb

* commit '044f1e87e45cea4d1e5cddf92e2e59e8c18b3359':
  Add an option to disable explicit GC requests.

13 years agoam 0bd1ebdb: am 461d57dc: Merge "Add an option to disable explicit GC requests."...
Carl Shapiro [Wed, 19 Jan 2011 22:33:32 +0000 (14:33 -0800)]
am 0bd1ebdb: am 461d57dc: Merge "Add an option to disable explicit GC requests." into honeycomb

* commit '0bd1ebdbeb876acfca801e337fe58ffe184edc1a':
  Add an option to disable explicit GC requests.

13 years agoam 461d57dc: Merge "Add an option to disable explicit GC requests." into honeycomb
Carl Shapiro [Wed, 19 Jan 2011 22:32:00 +0000 (14:32 -0800)]
am 461d57dc: Merge "Add an option to disable explicit GC requests." into honeycomb

* commit '461d57dc62af82c9095a0ce3feb8fc0a4f88ddc9':
  Add an option to disable explicit GC requests.

13 years agoMerge "Add an option to disable explicit GC requests." into honeycomb
Carl Shapiro [Wed, 19 Jan 2011 22:29:43 +0000 (14:29 -0800)]
Merge "Add an option to disable explicit GC requests." into honeycomb

13 years agoAdd an option to disable explicit GC requests.
Carl Shapiro [Wed, 19 Jan 2011 20:56:14 +0000 (12:56 -0800)]
Add an option to disable explicit GC requests.

Change-Id: Ibb2ca9d99fccfba61492a8059201777f59c81274

13 years agoam 9a20dcf4: am 4b2dc337: am 6009938d: Increase LinearAlloc limit
Andy McFadden [Wed, 19 Jan 2011 19:39:26 +0000 (11:39 -0800)]
am 9a20dcf4: am 4b2dc337: am 6009938d: Increase LinearAlloc limit

* commit '9a20dcf449caafaffacd3502b1a08f25b27394d2':
  Increase LinearAlloc limit

13 years agoam 4b2dc337: am 6009938d: Increase LinearAlloc limit
Andy McFadden [Wed, 19 Jan 2011 19:29:20 +0000 (11:29 -0800)]
am 4b2dc337: am 6009938d: Increase LinearAlloc limit

* commit '4b2dc33744c00da2a89b075e8e631f3917f83d7f':
  Increase LinearAlloc limit

13 years agoam 6009938d: Increase LinearAlloc limit
Andy McFadden [Wed, 19 Jan 2011 19:27:48 +0000 (11:27 -0800)]
am 6009938d: Increase LinearAlloc limit

* commit '6009938d52c3ba5ae1fdf0074ab618d1166750bf':
  Increase LinearAlloc limit

13 years agoIncrease LinearAlloc limit
Andy McFadden [Wed, 19 Jan 2011 19:00:53 +0000 (11:00 -0800)]
Increase LinearAlloc limit

When run on framework.jar, dexopt needs about 4MB of LinearAlloc
space.  We were capped at 5MB.  Bump up the limit to 8MB to give
us some additional head room.

Bug 3362346

Change-Id: I61e06e4cd7d24d45e426026a5adddd7badc3b839

13 years agoMerge "Consolidate mterp's debug/profile/suspend control" into dalvik-dev
buzbee [Wed, 19 Jan 2011 18:16:31 +0000 (10:16 -0800)]
Merge "Consolidate mterp's debug/profile/suspend control" into dalvik-dev

13 years agoConsolidate mterp's debug/profile/suspend control
buzbee [Fri, 14 Jan 2011 21:37:31 +0000 (13:37 -0800)]
Consolidate mterp's debug/profile/suspend control

This is a step towards full debug & profiling support in JIT'd code.
Previously, the interpreter made multiple distinct checks for pending
suspend requests, debugger and profiler checks at each safe point.
This CL moves the individual controls into a single control word,
significantly speeding up the safe-point check code path in the common
fast case.

In short, any time some VM component wants control to break at a safe
point it will set a bit in gDvm.interpBreak, which will be examined
at the safe point check in footer.S.  In the old code, the safe point
check consisted of 11 instructions (including 6 loads).  The new sequence
is 6 instructions (4 loads - two of which are needed and two are
speculative to fill otherwise stalling slots).

This code path is hot enough in the interpreter that we actually see
some measureable speedups in benchmarks.  The old sieve benchmark
improves from 252 to 256 (~1.5%).

As part of the change, global debuggerActive and activeProfilers variables
have been eliminated as redundant.  Note also that there is a subtle
change in thread suspension.  Thread suspend request counts are kept on
a per-thread basis, and previously each thread would only examine its own
suspend count.  With this change, a bit has been allocated in interpBreak
to signify that at least one suspend request is active across all
threads.  This bit is treated as "some thread is supposed to
suspend, check to see if it's me".

Change-Id: I527dc918f58d1486ef3324136080ef541a775ba8

13 years agoam 2287bffd: am 9622ef8d: am b2e15681: Merge "Implement growth limits to support...
Carl Shapiro [Wed, 19 Jan 2011 06:13:54 +0000 (22:13 -0800)]
am 2287bffd: am 9622ef8d: am b2e15681: Merge "Implement growth limits to support multiple heap configurations." into honeycomb

* commit '2287bffddbb9150bdefaec8e6d9baf2726a86c90':
  Implement growth limits to support multiple heap configurations.

13 years agoam f18a4274: am 6210c50d: am eef67346: Merge "Fix proxy expectation." into honeycomb
Jesse Wilson [Wed, 19 Jan 2011 06:13:50 +0000 (22:13 -0800)]
am f18a4274: am 6210c50d: am eef67346: Merge "Fix proxy expectation." into honeycomb

* commit 'f18a427413d1cea7e245256810346837bd88cd8c':
  Fix proxy expectation.

13 years agoam 9622ef8d: am b2e15681: Merge "Implement growth limits to support multiple heap...
Carl Shapiro [Wed, 19 Jan 2011 06:02:28 +0000 (22:02 -0800)]
am 9622ef8d: am b2e15681: Merge "Implement growth limits to support multiple heap configurations." into honeycomb

* commit '9622ef8d66f3a2c1780166a84485e6130727fcc1':
  Implement growth limits to support multiple heap configurations.

13 years agoam 6210c50d: am eef67346: Merge "Fix proxy expectation." into honeycomb
Jesse Wilson [Wed, 19 Jan 2011 06:02:26 +0000 (22:02 -0800)]
am 6210c50d: am eef67346: Merge "Fix proxy expectation." into honeycomb

* commit '6210c50d31f45c28c2cddca405a4b946f7fbfb39':
  Fix proxy expectation.

13 years agoam b2e15681: Merge "Implement growth limits to support multiple heap configurations...
Carl Shapiro [Wed, 19 Jan 2011 02:41:06 +0000 (18:41 -0800)]
am b2e15681: Merge "Implement growth limits to support multiple heap configurations." into honeycomb

* commit 'b2e15681cb52079d8e63a68a611036911b94d1fe':
  Implement growth limits to support multiple heap configurations.

13 years agoam eef67346: Merge "Fix proxy expectation." into honeycomb
Jesse Wilson [Wed, 19 Jan 2011 02:39:31 +0000 (18:39 -0800)]
am eef67346: Merge "Fix proxy expectation." into honeycomb

* commit 'eef673461bdbfbd8fde35c302ee5df5330f643a5':
  Fix proxy expectation.

13 years agoMerge "Implement growth limits to support multiple heap configurations." into honeycomb
Carl Shapiro [Wed, 19 Jan 2011 02:16:46 +0000 (18:16 -0800)]
Merge "Implement growth limits to support multiple heap configurations." into honeycomb

13 years agoImplement growth limits to support multiple heap configurations.
Carl Shapiro [Wed, 19 Jan 2011 01:59:30 +0000 (17:59 -0800)]
Implement growth limits to support multiple heap configurations.

When a growth limit is in effect, allocations will be limited to
number of bytes specified by the growth limit instead of the maximum
heap size.  Growth limits are specified on the command line with the
new parameter -XX:HeapGrowthLimit.  A growth limit can be removed at
runtime by calling the new clearGrowthLimit method.

This is a work around until we can adjust the maximum heap size at
runtime.

Change-Id: Ic01e32823b5ca8cf29c0948fb6cd2df10967c1fb

13 years agoMerge "Fix proxy expectation." into honeycomb
Jesse Wilson [Wed, 19 Jan 2011 01:24:19 +0000 (17:24 -0800)]
Merge "Fix proxy expectation." into honeycomb

13 years agoFix proxy expectation.
Jesse Wilson [Wed, 19 Jan 2011 01:20:33 +0000 (17:20 -0800)]
Fix proxy expectation.

Change-Id: I70589302c686387a1f89e8f79eb58c4b6b8214a6

13 years agoMerge "Add an undocumented --incremental option to dx." into dalvik-dev
Jesse Wilson [Wed, 19 Jan 2011 00:05:37 +0000 (16:05 -0800)]
Merge "Add an undocumented --incremental option to dx." into dalvik-dev

13 years agoAdd an undocumented --incremental option to dx.
Jesse Wilson [Tue, 18 Jan 2011 01:29:35 +0000 (17:29 -0800)]
Add an undocumented --incremental option to dx.

Change-Id: I48879b2f724e9b92c99c669803f9c8de01487327

13 years agoMerge "Optimized dx instruction expansion to only generate necessary moves." into...
jeffhao [Tue, 18 Jan 2011 21:27:37 +0000 (13:27 -0800)]
Merge "Optimized dx instruction expansion to only generate necessary moves." into dalvik-dev

13 years agoOptimized dx instruction expansion to only generate necessary moves.
jeffhao [Mon, 17 Jan 2011 19:37:21 +0000 (11:37 -0800)]
Optimized dx instruction expansion to only generate necessary moves.

When an instruction's fields do not fit into an instruction format, dx
expands the instruction. Before, this would always use new registers for
sources and destination, generating moves for each. However, some of
these moves would be unnecessary if an original register already fit
into the instruction format. This change checks to see if the original
register fits before using a new register and generating a new move.

Change-Id: I17c6722cf4053573bf913a28d631386f2c3a733d

13 years agoam acbb1f4c: am 88b5885e: am 241cec80: Remove unused heap dumping code.
Carl Shapiro [Mon, 17 Jan 2011 22:51:40 +0000 (14:51 -0800)]
am acbb1f4c: am 88b5885e: am 241cec80: Remove unused heap dumping code.

* commit 'acbb1f4c8a6a4085cd237b50fd0f2d1efe432e9f':
  Remove unused heap dumping code.

13 years agoam 88b5885e: am 241cec80: Remove unused heap dumping code.
Carl Shapiro [Mon, 17 Jan 2011 22:47:59 +0000 (14:47 -0800)]
am 88b5885e: am 241cec80: Remove unused heap dumping code.

* commit '88b5885e8ba78898eadf6d201cebe97794fe578d':
  Remove unused heap dumping code.

13 years agoam 241cec80: Remove unused heap dumping code.
Carl Shapiro [Mon, 17 Jan 2011 22:42:22 +0000 (14:42 -0800)]
am 241cec80: Remove unused heap dumping code.

* commit '241cec80a79551730122fb9dbc92a3527392b1de':
  Remove unused heap dumping code.

13 years agoMerge "Make DexMerger's dex reader general purpose." into dalvik-dev
Jesse Wilson [Mon, 17 Jan 2011 22:13:49 +0000 (14:13 -0800)]
Merge "Make DexMerger's dex reader general purpose." into dalvik-dev

13 years agoMake DexMerger's dex reader general purpose.
Jesse Wilson [Mon, 17 Jan 2011 02:06:57 +0000 (18:06 -0800)]
Make DexMerger's dex reader general purpose.

Use this to implement FindUsages, which prints references to
fields and methods within a dex. This is the FindUsages output
for "Ljava/lang/Number;", "longValue" on libcore's dex file:

Method referenced by Ljava/io/EmulatedFields;#get invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/io/EmulatedFieldsForDumping;#write invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/io/ObjectOutputStream;#writeFieldValues invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method declared by Ljava/lang/Number;#longValue
Method declared by Ljava/lang/Byte;#longValue
Method declared by Ljava/lang/Double;#longValue
Method declared by Ljava/lang/Float;#longValue
Method declared by Ljava/lang/Integer;#longValue
Method declared by Ljava/lang/Long;#longValue
Method declared by Ljava/lang/Short;#longValue
Method referenced by Ljava/lang/reflect/Array;#set invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/math/BigDecimal;#divideBigIntegers invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/math/BigDecimal;#divideBigIntegers invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/math/BigDecimal;#divideBigIntegers invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/math/BigDecimal;#readObject invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/math/BigDecimal;#setUnscaledValue invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/math/BigDecimal;#valueExact invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/math/BigDecimal;#doubleValue invoke-virtual/range {vCCCC..vNNNN}, meth@BBBB
Method referenced by Ljava/math/BigDecimal;#doubleValue invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method declared by Ljava/math/BigDecimal;#longValue
Method referenced by Ljava/math/BigDecimal;#longValue invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method declared by Ljava/math/BigInteger;#longValue
Method referenced by Ljava/math/Conversion;#bigInteger2Double invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/math/Conversion;#bigInteger2Double invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/text/NumberFormat;#format invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/text/DateFormat;#format invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/text/DecimalFormat;#format invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/text/DecimalFormat;#parse invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/text/SimpleDateFormat;#formatToCharacterIterator invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/util/Formatter;#transform invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/util/Formatter;#transformFromDateTime invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/util/Formatter;#transformFromInteger invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/util/Formatter;#transformFromInteger invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/util/Formatter;#transformFromInteger invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/util/Formatter;#transformFromInteger invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/util/Formatter;#transform_g invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/util/Formatter;#transform_g invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/util/Formatter;#transform_g invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/util/Formatter;#transform_g invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/util/Scanner;#nextLong invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method declared by Ljava/util/concurrent/atomic/AtomicInteger;#longValue
Method declared by Ljava/util/concurrent/atomic/AtomicLong;#longValue
Method referenced by Llibcore/icu/NativeDecimalFormat;#formatToCharacterIterator invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Lorg/apache/xalan/xslt/SecuritySupport12;#getLastModified invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Lorg/apache/xml/dtm/SecuritySupport12;#getLastModified invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Lorg/apache/xml/dtm/ref/SecuritySupport12;#getLastModified invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Lorg/apache/xml/serializer/SecuritySupport12;#getLastModified invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Lorg/apache/xml/utils/SecuritySupport12;#getLastModified invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Lorg/apache/xpath/functions/SecuritySupport12;#getLastModified invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Lorg/json/JSON;#toLong invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Lorg/json/JSONArray;#getLong invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Lorg/json/JSONArray;#optLong invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Lorg/json/JSONObject;#numberToString invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Lorg/json/JSONObject;#getLong invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Lorg/json/JSONObject;#optLong invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC

Change-Id: Ia50f28f53ce5838799e2d5f03a7a2f1c551299de

13 years agoam 9c947b14: am 56750efd: am 0f403d5f: Remove some inline declarations to improve...
Carl Shapiro [Mon, 17 Jan 2011 07:22:27 +0000 (23:22 -0800)]
am 9c947b14: am 56750efd: am 0f403d5f: Remove some inline declarations to improve debugging.

* commit '9c947b14fcaae1233b58c2c3ab3351b632dba76b':
  Remove some inline declarations to improve debugging.

13 years agoam cb7e217f: am 548d70b0: am 23966773: Rename absoluteMaxSize to maximumSize.
Carl Shapiro [Mon, 17 Jan 2011 07:22:25 +0000 (23:22 -0800)]
am cb7e217f: am 548d70b0: am 23966773: Rename absoluteMaxSize to maximumSize.

* commit 'cb7e217fb0a6c024abaa0f233edfd7d99aacc64d':
  Rename absoluteMaxSize to maximumSize.

13 years agoam 70f4dccb: am c5ec711d: am ac8f1125: Merge "Make the soft limited predicate look...
Carl Shapiro [Mon, 17 Jan 2011 07:22:21 +0000 (23:22 -0800)]
am 70f4dccb: am c5ec711d: am ac8f1125: Merge "Make the soft limited predicate look more like a predicate." into honeycomb

* commit '70f4dccb8a5d393cf9a076e72d8af4425c99b8bb':
  Make the soft limited predicate look more like a predicate.

13 years agoam 56750efd: am 0f403d5f: Remove some inline declarations to improve debugging.
Carl Shapiro [Mon, 17 Jan 2011 07:06:13 +0000 (23:06 -0800)]
am 56750efd: am 0f403d5f: Remove some inline declarations to improve debugging.

* commit '56750efd3a5fffaef6306df89fc9a2054d5e5861':
  Remove some inline declarations to improve debugging.

13 years agoam 548d70b0: am 23966773: Rename absoluteMaxSize to maximumSize.
Carl Shapiro [Mon, 17 Jan 2011 07:01:20 +0000 (23:01 -0800)]
am 548d70b0: am 23966773: Rename absoluteMaxSize to maximumSize.

* commit '548d70b045b434be5343fb1549a6d538c5c12ff7':
  Rename absoluteMaxSize to maximumSize.

13 years agoam c5ec711d: am ac8f1125: Merge "Make the soft limited predicate look more like a...
Carl Shapiro [Mon, 17 Jan 2011 07:00:48 +0000 (23:00 -0800)]
am c5ec711d: am ac8f1125: Merge "Make the soft limited predicate look more like a predicate." into honeycomb

* commit 'c5ec711d856778b6fd108b15a0a77f68995d44af':
  Make the soft limited predicate look more like a predicate.