OSDN Git Service

android-x86/dalvik.git
14 years agoMerge change 22370
Android (Google) Code Review [Wed, 26 Aug 2009 17:03:03 +0000 (10:03 -0700)]
Merge change 22370

* changes:
  Thumb/Thumb2 instruction selection rework.

14 years agoam f7fb0086: Merge change 22659 into eclair
Andy McFadden [Wed, 26 Aug 2009 14:24:01 +0000 (07:24 -0700)]
am f7fb0086: Merge change 22659 into eclair

Merge commit 'f7fb00865dd05c32aab5b968fd79ae0ef63e9d6c'

* commit 'f7fb00865dd05c32aab5b968fd79ae0ef63e9d6c':
  Another round of scary indirect ref changes.

14 years agoMerge change 22659 into eclair
Android (Google) Code Review [Wed, 26 Aug 2009 14:19:51 +0000 (07:19 -0700)]
Merge change 22659 into eclair

* changes:
  Another round of scary indirect ref changes.

14 years agoThumb/Thumb2 instruction selection rework.
Bill Buzbee [Thu, 13 Aug 2009 23:58:07 +0000 (16:58 -0700)]
Thumb/Thumb2 instruction selection rework.

Change-id: I7428278f07f49e675d0271c58b3cbf1f6a4e9da1

14 years agoAnother round of scary indirect ref changes.
Andy McFadden [Tue, 25 Aug 2009 14:19:34 +0000 (07:19 -0700)]
Another round of scary indirect ref changes.

This change adds a not-really-working implementation to Jni.c, with
various changes #ifdefed throughout the code.  The ifdef is currently
disabled, so the old behavior should continue.  Eventually the old
version will be stripped out and the ifdefs removed.

This renames the stack's "localRefTop" field, which nudged a bunch of
code.  The name wasn't really right before (it's the *bottom* of the
local references), and it's even less right now.  This and one other
mterp-visible constant were changed, which caused some ripples through
mterp and the JIT, but the ifdeffing was limited to one in
asm-constants.h (and the constant is the same both ways, so toggling the
ifdef won't require rebuilding asm sources).

Some comments and arg names in ReferenceTable were updated for the
correct orientation of bottom vs. top.

Some adjustments were made to the JNI code, e.g. dvmCallMethod now needs
to understand if it needs to convert reference arguments from
local/global refs to pointers (it's called from various places
throughout the VM).

14 years agoam 9b44ccfc: Small changes missed in the original submission of 22482.
Jesse Wilson [Tue, 25 Aug 2009 18:19:50 +0000 (11:19 -0700)]
am 9b44ccfc: Small changes missed in the original submission of 22482.

Merge commit '9b44ccfc38c2fc2a6cf2c3cc39a13cc5bce635ba'

* commit '9b44ccfc38c2fc2a6cf2c3cc39a13cc5bce635ba':
  Small changes missed in the original submission of 22482.

14 years agoSmall changes missed in the original submission of 22482.
Jesse Wilson [Tue, 25 Aug 2009 18:14:01 +0000 (11:14 -0700)]
Small changes missed in the original submission of 22482.

14 years agoam 35e16314: Merge change 22482 into eclair
Jesse Wilson [Tue, 25 Aug 2009 18:11:25 +0000 (11:11 -0700)]
am 35e16314: Merge change 22482 into eclair

Merge commit '35e163146caf81f824641c4560b8e118697fab1b'

* commit '35e163146caf81f824641c4560b8e118697fab1b':
  Update java.text to Harmony r802921.

14 years agoMerge change 22482 into eclair
Android (Google) Code Review [Tue, 25 Aug 2009 18:07:15 +0000 (11:07 -0700)]
Merge change 22482 into eclair

* changes:
  Update java.text to Harmony r802921.

14 years agoam 0083d37b: Use local references for native method args.
Andy McFadden [Mon, 24 Aug 2009 23:08:23 +0000 (16:08 -0700)]
am 0083d37b: Use local references for native method args.

Merge commit '0083d37b0e1c9e542f671cbca2e9db6819ecccba'

* commit '0083d37b0e1c9e542f671cbca2e9db6819ecccba':
  Use local references for native method args.

14 years agoUse local references for native method args.
Andy McFadden [Fri, 21 Aug 2009 21:44:04 +0000 (14:44 -0700)]
Use local references for native method args.

This changes the JNI method call mechanism to register all reference
arguments as local refs, as well as the "this" argument (for virtual
calls) and the class object (for static calls).

Before now we skipped this part, because we're handing raw object
pointers around, and we know that all of the arguments can be found by
the GC on the interpreted stack.  In fact, there's no need to add the
arguments for GC-correctness; rather, we need to do this to rewrite the
pointers we hand to native code.

This change impacts JNI method call performance, especially for functions
with a large number of reference arguments.  To improve things a little,
there are now four "call bridge" functions:

  (1) general handler
  (2) synchronized method handler (grabs lock, calls #1)
  (3) virtual method, no reference args
  (4) static method, no reference args

While booting the system, the virtual/static no-ref handlers are used
for about 70% of calls.  Since these don't have to scan the method
signature to look for reference arguments, they're a bit faster.

At this point we're still passing raw pointers around, so nothing should
really change.

14 years agoUpdate java.text to Harmony r802921.
Jesse Wilson [Mon, 24 Aug 2009 21:05:44 +0000 (14:05 -0700)]
Update java.text to Harmony r802921.

Notable changes:
 - Replaced some StringBuffers with StringBuilders
 - Harmony moved to ICU, we stayed with ResourceBundles
 - Harmony now uses ICU's Bidi, we continue to use BidiWrapper
 - Fixed DateFormat.readResolve()
 - Fixed DecimalFormat serialization for setMaximumIntegerDigits
 - Fixed currency to support "XXX" for null
 - Support for null in MessageFormat.format()
 - Rearranged methods in SimpleDateFormat. Body is the same.
 - Fixed tests for Bidi.getRunLimit(). These are new failures.

commit 112ab830475bc1a1fab9c7a16589b5525892e6a0
Merge: 39b03a1 62c2b2e
Author: Jesse Wilson <jessewilson@google.com>
Date:   Mon Aug 24 14:03:31 2009 -0700

    Merge dalvik and Harmony for java.text

    Conflicts:
     libcore/text/.classpath
     libcore/text/META-INF/MANIFEST.MF
     libcore/text/build.xml
     libcore/text/make/exclude.common
     libcore/text/make/run-test.xml
     libcore/text/src/main/java/java/text/Annotation.java
     libcore/text/src/main/java/java/text/AttributedCharacterIterator.java
     libcore/text/src/main/java/java/text/AttributedString.java
     libcore/text/src/main/java/java/text/Bidi.java
     libcore/text/src/main/java/java/text/BreakIterator.java
     libcore/text/src/main/java/java/text/CharacterIterator.java
     libcore/text/src/main/java/java/text/ChoiceFormat.java
     libcore/text/src/main/java/java/text/CollationElementIterator.java
     libcore/text/src/main/java/java/text/CollationKey.java
     libcore/text/src/main/java/java/text/Collator.java
     libcore/text/src/main/java/java/text/DateFormat.java
     libcore/text/src/main/java/java/text/DateFormatSymbols.java
     libcore/text/src/main/java/java/text/DecimalFormat.java
     libcore/text/src/main/java/java/text/DecimalFormatSymbols.java
     libcore/text/src/main/java/java/text/FieldPosition.java
     libcore/text/src/main/java/java/text/Format.java
     libcore/text/src/main/java/java/text/MessageFormat.java
     libcore/text/src/main/java/java/text/NumberFormat.java
     libcore/text/src/main/java/java/text/ParseException.java
     libcore/text/src/main/java/java/text/ParsePosition.java
     libcore/text/src/main/java/java/text/RuleBasedCollator.java
     libcore/text/src/main/java/java/text/SimpleDateFormat.java
     libcore/text/src/main/java/java/text/StringCharacterIterator.java
     libcore/text/src/test/java/org/apache/harmony/text/tests/java/text/AttributedCharacterIteratorAttributeTest.java
     libcore/text/src/test/java/org/apache/harmony/text/tests/java/text/BidiTest.java
     libcore/text/src/test/java/org/apache/harmony/text/tests/java/text/CollationElementIteratorTest.java
     libcore/text/src/test/java/org/apache/harmony/text/tests/java/text/DateFormatSymbolsTest.java
     libcore/text/src/test/java/org/apache/harmony/text/tests/java/text/DateFormatTest.java
     libcore/text/src/test/java/org/apache/harmony/text/tests/java/text/DecimalFormatSymbolsTest.java
     libcore/text/src/test/java/org/apache/harmony/text/tests/java/text/DecimalFormatTest.java
     libcore/text/src/test/java/org/apache/harmony/text/tests/java/text/FieldPositionTest.java
     libcore/text/src/test/java/org/apache/harmony/text/tests/java/text/MessageFormatTest.java
     libcore/text/src/test/java/org/apache/harmony/text/tests/java/text/ParsePositionTest.java
     libcore/text/src/test/java/org/apache/harmony/text/tests/java/text/RuleBasedCollatorTest.java
     libcore/text/src/test/java/org/apache/harmony/text/tests/java/text/SimpleDateFormatTest.java

commit 39b03a1b2b150d468cc15d8ff8a92a07c9098a5c
Author: Jesse Wilson <jessewilson@google.com>
Date:   Wed Aug 19 17:00:36 2009 -0700

    text_dalvik

commit 62c2b2e932da51858998820fe2558631999c1241
Author: Jesse Wilson <jessewilson@google.com>
Date:   Wed Aug 19 17:00:23 2009 -0700

    text_802921

commit 2da8bc3457b9db827d96652e2bf159b7d5040ad1
Author: Jesse Wilson <jessewilson@google.com>
Date:   Wed Aug 19 17:00:08 2009 -0700

    text_527399

14 years agoFix jeffhao's build breakage by not including unnecessary header files.
Ben Cheng [Fri, 21 Aug 2009 23:18:46 +0000 (16:18 -0700)]
Fix jeffhao's build breakage by not including unnecessary header files.

14 years agoNew changes to enable self verification mode.
Jeff Hao [Wed, 12 Aug 2009 23:57:15 +0000 (16:57 -0700)]
New changes to enable self verification mode.

14 years agoam 48a96f51: Set os.arch property from uname().machine.
Andy McFadden [Fri, 21 Aug 2009 20:42:49 +0000 (13:42 -0700)]
am 48a96f51: Set os.arch property from uname().machine.

Merge commit '48a96f5133f33adaadbc0187503a35f03f1348ac'

* commit '48a96f5133f33adaadbc0187503a35f03f1348ac':
  Set os.arch property from uname().machine.

14 years agoSet os.arch property from uname().machine.
Andy McFadden [Fri, 21 Aug 2009 20:03:31 +0000 (13:03 -0700)]
Set os.arch property from uname().machine.

Not sure why we didn't just do this in the first place.  I get "x86_64"
on desktop and "armv6l" on a sapphire.

14 years agoam c26bb63b: Move array pinning out of global references table.
Andy McFadden [Fri, 21 Aug 2009 19:36:24 +0000 (12:36 -0700)]
am c26bb63b: Move array pinning out of global references table.

Merge commit 'c26bb63b50c7a855d25b396b1bf23a3aa6929b48'

* commit 'c26bb63b50c7a855d25b396b1bf23a3aa6929b48':
  Move array pinning out of global references table.

14 years agoMove array pinning out of global references table.
Andy McFadden [Fri, 21 Aug 2009 19:01:31 +0000 (12:01 -0700)]
Move array pinning out of global references table.

We have to pin primitive arrays for certain JNI operations (it's that or
return a copy of the contents).  We don't move objects around in the
virtual heap, so simply creating a global reference is enough to ensure
the correct behavior of the calls.

The global reference implementation is changing in a way that makes
this approach inconvenient, so we now have a separate table for pinned
primitive arrays.

As a bonus, if GREF tracking is enabled, we will scan through the table
when a pin entry is added.  If there are 10 or more entries for the same
array, a complaint is logged.  This should allow us to find mismatched
Get/Release sequences much more easily (before you had to wait until the
global reference table exploded).

We currently scan pin table entries at the same time as the JNI global
references, so they'll still show up in hprof dumps as such.  (Could
also add a new Android-specific hprof root category, but that seems like
more trouble than it's worth.)

14 years agoam ecd31154: Merge change 22183 into eclair
Andy McFadden [Fri, 21 Aug 2009 14:28:18 +0000 (07:28 -0700)]
am ecd31154: Merge change 22183 into eclair

Merge commit 'ecd3115415793a6d39d3092bbba569bad77eb765'

* commit 'ecd3115415793a6d39d3092bbba569bad77eb765':
  Progress toward indirect JNI references.

14 years agoMerge change 22183 into eclair
Android (Google) Code Review [Fri, 21 Aug 2009 14:24:25 +0000 (07:24 -0700)]
Merge change 22183 into eclair

* changes:
  Progress toward indirect JNI references.

14 years agoam 79941ae1: am 2b2e488b: Exposed default trust manager.
Bob Lee [Fri, 21 Aug 2009 02:37:58 +0000 (19:37 -0700)]
am 79941ae1: am 2b2e488b: Exposed default trust manager.

Merge commit '79941ae140b99de2676ce00c368c82cffbbb248b'

* commit '79941ae140b99de2676ce00c368c82cffbbb248b':
  Exposed default trust manager.

14 years agoam 2b2e488b: Exposed default trust manager.
Bob Lee [Fri, 21 Aug 2009 02:33:27 +0000 (19:33 -0700)]
am 2b2e488b: Exposed default trust manager.

Merge commit '2b2e488b25922b0b34094305cac084073ffbd03c' into eclair

* commit '2b2e488b25922b0b34094305cac084073ffbd03c':
  Exposed default trust manager.

14 years agoExposed default trust manager.
Bob Lee [Fri, 21 Aug 2009 00:34:58 +0000 (17:34 -0700)]
Exposed default trust manager.

14 years agoProgress toward indirect JNI references.
Andy McFadden [Wed, 19 Aug 2009 14:21:41 +0000 (07:21 -0700)]
Progress toward indirect JNI references.

Switch from simple typecasts to conversion functions for the objects
passed in and out of JNI calls.  No real change here; object references
are still just pointers.

Use explicit pin/unpin calls for primitive arrays.  For GetStringChars
we now pin the char[] rather than the String object.  (Which doesn't
make much difference in the grand scheme of things, since you need to
keep the String to pass into the release function anyway.)

14 years agoam 6070dfcb: Merge change 22152 into eclair
Andy McFadden [Thu, 20 Aug 2009 23:20:05 +0000 (16:20 -0700)]
am 6070dfcb: Merge change 22152 into eclair

Merge commit '6070dfcb6b216bd338874d7626aeb4c4ce93ea8e'

* commit '6070dfcb6b216bd338874d7626aeb4c4ce93ea8e':
  Fix a couple of compiler warnings.

14 years agoMerge change 22152 into eclair
Android (Google) Code Review [Thu, 20 Aug 2009 23:16:35 +0000 (16:16 -0700)]
Merge change 22152 into eclair

* changes:
  Fix a couple of compiler warnings.

14 years agoFix a couple of compiler warnings.
Andy McFadden [Thu, 20 Aug 2009 23:13:05 +0000 (16:13 -0700)]
Fix a couple of compiler warnings.

14 years agoam a537230a: Merge change 21907 into eclair
Andy McFadden [Wed, 19 Aug 2009 18:09:31 +0000 (11:09 -0700)]
am a537230a: Merge change 21907 into eclair

Merge commit 'a537230a989cd58570cdb5ebf0f75346fe79515b'

* commit 'a537230a989cd58570cdb5ebf0f75346fe79515b':
  Update storage size after expansion.

14 years agoMerge change 21907 into eclair
Android (Google) Code Review [Wed, 19 Aug 2009 18:03:58 +0000 (11:03 -0700)]
Merge change 21907 into eclair

* changes:
  Update storage size after expansion.

14 years agoam d1588bba: Merge change 21833 into eclair
Jesse Wilson [Wed, 19 Aug 2009 17:38:03 +0000 (10:38 -0700)]
am d1588bba: Merge change 21833 into eclair

Merge commit 'd1588bba601a319e6b6b99e797686b203822e8a6'

* commit 'd1588bba601a319e6b6b99e797686b203822e8a6':
  Fixing Unsafe.getUnsafe() to look up the stack the correct number of frames.

14 years agoMerge change 21833 into eclair
Android (Google) Code Review [Wed, 19 Aug 2009 17:33:42 +0000 (10:33 -0700)]
Merge change 21833 into eclair

* changes:
  Fixing Unsafe.getUnsafe() to look up the stack the correct number of frames.

14 years agoUpdate storage size after expansion.
Andy McFadden [Wed, 19 Aug 2009 17:32:01 +0000 (10:32 -0700)]
Update storage size after expansion.

We allow expansion in dvmSetBit(), but failed to update the capacity
after doing so.

14 years agoam fe79541b: Enable IPv6.
Lorenzo Colitti [Wed, 19 Aug 2009 01:06:21 +0000 (18:06 -0700)]
am fe79541b: Enable IPv6.

Merge commit 'fe79541b5cc5a490dd3a5b2e68f884fdfad4ca76'

* commit 'fe79541b5cc5a490dd3a5b2e68f884fdfad4ca76':
  Enable IPv6.

14 years agoFixing Unsafe.getUnsafe() to look up the stack the correct number of frames.
Jesse Wilson [Wed, 19 Aug 2009 00:21:31 +0000 (17:21 -0700)]
Fixing Unsafe.getUnsafe() to look up the stack the correct number of frames.

Also tests for Unsafe.getUnsafe() and all the requisite AllTests files
to make that show up in the continuous build.

14 years agoam 64520c8c: Merge change 21796 into eclair
Andy McFadden [Wed, 19 Aug 2009 00:19:55 +0000 (17:19 -0700)]
am 64520c8c: Merge change 21796 into eclair

Merge commit '64520c8c453b03190e33818306ffed3041133ea3'

* commit '64520c8c453b03190e33818306ffed3041133ea3':
  Turn down RegisterMap paranoia.

14 years agoam 03bd0d5b: Minor tweaks to JNI logging.
Andy McFadden [Wed, 19 Aug 2009 00:19:52 +0000 (17:19 -0700)]
am 03bd0d5b: Minor tweaks to JNI logging.

Merge commit '03bd0d5b9b9d769e6e5245274204fbfd470de7f0'

* commit '03bd0d5b9b9d769e6e5245274204fbfd470de7f0':
  Minor tweaks to JNI logging.

14 years agoEnable IPv6.
Lorenzo Colitti [Tue, 18 Aug 2009 23:14:33 +0000 (16:14 -0700)]
Enable IPv6.

If the system has IPv6 connectivity, query the DNS for IPv6 addresses as well
as IPv4 addresses. If IPv6 addresses are returned, prefer them by default.

Impact of this change:

- If the device is on a network with IPv6 configured, is using wifi, and has
  obtained an IPv6 address using autoconfiguration, the network stack will
  request IPv6 addresses as well as IPv4 addresses when making DNS queries. This
  allows the device to connect to websites and services that declare themselves
  to be reachable over IPv6. If an IPv6 connection fails, the stack will fall
  back to IPv4.  This is what Windows Vista, Mac OS 10.4 and above, and most
  Linux distributions do by default.
- If the device is not on a network that supports IPv6, or is using 3G/EVDO,
  nothing will change.

I have been testing this change on self-compiled builds of master and eclair on
Dream and Sholes for several weeks with no breakage that I can see.

14 years agoMerge change 21796 into eclair
Android (Google) Code Review [Tue, 18 Aug 2009 22:37:06 +0000 (15:37 -0700)]
Merge change 21796 into eclair

* changes:
  Turn down RegisterMap paranoia.

14 years agoMinor tweaks to JNI logging.
Andy McFadden [Tue, 18 Aug 2009 22:32:27 +0000 (15:32 -0700)]
Minor tweaks to JNI logging.

Reduced a LOGI to LOGD, normalized format, added a similar message for a
field ID lookup that was failing (due to a bad flash, as it turns out).

14 years agoTurn down RegisterMap paranoia.
Andy McFadden [Tue, 18 Aug 2009 22:11:35 +0000 (15:11 -0700)]
Turn down RegisterMap paranoia.

This disables verification of RegisterMap contents and compressed
output, as well as a GC-time check that double-checked the validity of a
register known to hold a reference.

For internal bug 1896437.

14 years agoam d12092a5: am affecd77: Cleanup CTS core failing tests.
Brett Chabot [Tue, 18 Aug 2009 19:08:37 +0000 (12:08 -0700)]
am d12092a5: am affecd77: Cleanup CTS core failing tests.

Merge commit 'd12092a5b23c40a92ef51a46c3aa273af52587a3'

* commit 'd12092a5b23c40a92ef51a46c3aa273af52587a3':
  Cleanup CTS core failing tests.

14 years agoam affecd77: Cleanup CTS core failing tests.
Brett Chabot [Tue, 18 Aug 2009 17:59:02 +0000 (10:59 -0700)]
am affecd77: Cleanup CTS core failing tests.

Merge commit 'affecd7714e14fabff011ad61d436df3698bf7eb' into eclair

* commit 'affecd7714e14fabff011ad61d436df3698bf7eb':
  Cleanup CTS core failing tests.

14 years agoCleanup CTS core failing tests.
Brett Chabot [Fri, 14 Aug 2009 04:37:47 +0000 (21:37 -0700)]
Cleanup CTS core failing tests.

BUG 2053939

14 years agoEnable VM assert properly for JIT and fix new compilation/assertion failures.
Ben Cheng [Fri, 14 Aug 2009 20:52:09 +0000 (13:52 -0700)]
Enable VM assert properly for JIT and fix new compilation/assertion failures.

14 years agoContinuing evolution of Thumb2 support.
Bill Buzbee [Tue, 11 Aug 2009 00:06:51 +0000 (17:06 -0700)]
Continuing evolution of Thumb2 support.
Bug fix for local optimization
Enable partial floating point store sinking (with significant perf gain!)

14 years agoBe more POSIXly correct in the use of expr.
Dan Bornstein [Wed, 12 Aug 2009 19:16:40 +0000 (12:16 -0700)]
Be more POSIXly correct in the use of expr.

14 years agoUpdate Luni to Harmony r802921.
Jesse Wilson [Tue, 11 Aug 2009 01:43:30 +0000 (18:43 -0700)]
Update Luni to Harmony r802921.

Notable changes:
 - replaced StringBuffer with StringBuilder in several places
 - fixed a problem with BufferedInputStream's newline characters (EBCDIC)
 - cleanup Timer's finalizer helper object
 - new cache for the canonical path of a file
 - fixed concurrency issue with ArrayList
 - floating point parsing now trims length for very small numbers
 - encoding specified "UTF-8" when converting some byte[]s to strings (JarURLConnection, Util, OSFileSystem)
 - Harmony now implements floor and ceil in Java. We continue to use native code.

14 years agoMerge change 8107
Android (Google) Code Review [Mon, 10 Aug 2009 23:44:10 +0000 (16:44 -0700)]
Merge change 8107

* changes:
  First parts of enabling a host Dalvik build.

14 years agoFirst parts of enabling a host Dalvik build.
Dan Bornstein [Tue, 21 Jul 2009 23:08:39 +0000 (16:08 -0700)]
First parts of enabling a host Dalvik build.

Most of this is just factoring out common make defs to include both on
the host and device side, though there is a little bit of code change
to be slightly POSIX friendlier and to avoid unnecessary sanity checks
when compiling without an asm version of the interpreter.

This patch should cause no difference in build results, except if you
turn on the newly-defined WITH_HOST_DALVIK build flag. If you do turn
it on, at this point you should probably expect the build to fail due
to insufficient dependencies, which I of course expect to address in
upcoming patches.

14 years agomerge from open-source master
Jean-Baptiste Queru [Mon, 10 Aug 2009 20:41:39 +0000 (13:41 -0700)]
merge from open-source master

14 years agoChange strategy for freeing objects in the sweep.
Barry Hayes [Wed, 20 May 2009 19:10:36 +0000 (12:10 -0700)]
Change strategy for freeing objects in the sweep.

dlfree() in dlmalloc.c is fairly expensive. It checks the previous and
next block to see if the curent block can be merged into one of the
free blocks, and if it does merge, that involves manipulating the
internal free lists.

The sweep phase of the GC is already visiting free objects in address
order, and has a list of objects to be freed. The new strategy is:

Loop over the list of objects to be freed, merging when possible, and
only calling free() when a either the list has run out or a
non-adjacent free object is found.

14 years agoIncrease priority of unresponsive threads.
Andy McFadden [Fri, 7 Aug 2009 18:41:35 +0000 (11:41 -0700)]
Increase priority of unresponsive threads.

The VM uses a safe-pointing thread suspension mechanism, which currently
means that the GC can't do its work until the various threads enter a
non-running state.  This can be a problem if a low-priority thread was
scheduled out and other processes in the system are running flat out.

This changes the "spin on suspend" mechanism to increase the priority of
unresponsive threads.  Currently we just boost the "nice" value, since
that seems to be enough to do the trick in my tests, but we may have to
shift the cgroup around as well (assuming other recent changes don't
simply render this unnecessary).

14 years agoRead thread priority as an int, not a boolean.
Andy McFadden [Fri, 7 Aug 2009 21:49:40 +0000 (14:49 -0700)]
Read thread priority as an int, not a boolean.

We were using the wrong field get function.  After our change to
stdbool.h, the thread priority was always 0 or 1.

14 years agoCorrect the type of a pointer.
Andy McFadden [Fri, 7 Aug 2009 18:37:44 +0000 (11:37 -0700)]
Correct the type of a pointer.

Should've been part of change 20178.

14 years agoMerge change 20378
Android (Google) Code Review [Fri, 7 Aug 2009 14:21:08 +0000 (07:21 -0700)]
Merge change 20378

* changes:
  Suspend daemon threads before exiting.

14 years agoSuspend daemon threads before exiting.
Andy McFadden [Fri, 7 Aug 2009 00:56:14 +0000 (17:56 -0700)]
Suspend daemon threads before exiting.

The VM wasn't dealing with daemon threads very well, allowing them to
run unchecked while the city burned around them.  Now we carefully
suspend them before shutdown is allowed to continue.

14 years agoMerge change 8538
Android (Google) Code Review [Thu, 6 Aug 2009 19:49:34 +0000 (12:49 -0700)]
Merge change 8538

* changes:
  A sampling profiler for Dalvik.

14 years agoA sampling profiler for Dalvik.
Bob Lee [Fri, 31 Jul 2009 01:17:37 +0000 (18:17 -0700)]
A sampling profiler for Dalvik.

14 years agoSwitch to <stdbool.h> in the VM.
Andy McFadden [Wed, 5 Aug 2009 22:20:27 +0000 (15:20 -0700)]
Switch to <stdbool.h> in the VM.

We were using an enum that made the compiler unhappy on MacOS X.  This
switches us to using <stdbool.h> when it's available.

The size of a "bool" is either sizeof(_Bool) or sizeof(enum bool), and
the assembly sources dislike ambiguity, so this also changes
gDvm.debuggerActive to always be a single byte.  The ARM and x86 code
was already assuming that -- held over from when enums were
variable-width, and never fixed because we get the right answer on
little-endian platforms -- so it doesn't look like we need to change
anything in mterp.

14 years agoMerge change 9641
Android (Google) Code Review [Wed, 5 Aug 2009 21:11:05 +0000 (14:11 -0700)]
Merge change 9641

* changes:
  Added thread profile to dmtracedump output

14 years agoMerge change 20002
Android (Google) Code Review [Wed, 5 Aug 2009 20:41:28 +0000 (13:41 -0700)]
Merge change 20002

* changes:
  Updating math to Harmony r772995.

14 years agoRegenerate mterp.
Andy McFadden [Wed, 5 Aug 2009 20:20:16 +0000 (13:20 -0700)]
Regenerate mterp.

Whoops!  Should've been part of d33b0c3fbd81ae96c5d5c034030d62caac33c310.

14 years agoDon't assert that all threads have stopped.
Andy McFadden [Tue, 4 Aug 2009 23:38:40 +0000 (16:38 -0700)]
Don't assert that all threads have stopped.

If assertions were enabled and we had a daemon thread running, the VM
would fail on exit.

14 years agoMerge change 20020
Android (Google) Code Review [Wed, 5 Aug 2009 14:22:20 +0000 (07:22 -0700)]
Merge change 20020

* changes:
  Improvements to cgroup stuff.

14 years agoAdded thread profile to dmtracedump output
Rodrigo Ipince [Tue, 4 Aug 2009 04:34:47 +0000 (21:34 -0700)]
Added thread profile to dmtracedump output

The thread profile lists all the running threads, sorted by elapsed time.

14 years agoImprovements to cgroup stuff.
Andy McFadden [Tue, 4 Aug 2009 22:02:12 +0000 (15:02 -0700)]
Improvements to cgroup stuff.

When a thread is created or changes priority via Thread.setPriority(),
the cgroup value was being set incorrectly -- the code was comparing
the priority vs. the "nice" values we use in the rest of Android.
This was preventing threads from being moved into the background group
when first created.  (It's not clear whether this matters in most cases,
since the system appears to move threads in and out of the background
cgroup without regard to their "nice" value in Process.setProcessGroup.)

The code that changed the cgroup wasn't really checking the return
value, though this is only meaningful if the verbose error logging is
compiled in.

The above have been fixed, and in addition the thread dump now displays
the cgroup value next to the other priority information.

14 years agoUpdating math to Harmony r772995.
Jesse Wilson [Tue, 4 Aug 2009 20:50:38 +0000 (13:50 -0700)]
Updating math to Harmony r772995.

Notable changes:
- lots of trailing whitespace and "@since Android 1.0" tags removed
- shiftLeft(1) replaced with shiftLeftOneBit(). That case can be optimized
  more aggressively than the general case. The new method exists in BigInteger
  and calls through to a new method in BitLevel in the same way as Harmony.

This is a squashed commit of the following:

commit 3f071487bdb8fff0b4a71ce0219ee7e1e16369fb
Merge: 4fda354 10640b6
Author: Jesse Wilson <jessewilson@google.com>
Date:   Tue Aug 4 12:02:25 2009 -0700

    Merge branch 'math_772995' into math_dalvik

    Conflicts:
     libcore/math/.classpath
     libcore/math/build.xml
     libcore/math/src/main/java/java/math/BigDecimal.java
     libcore/math/src/main/java/java/math/BigInteger.java
     libcore/math/src/main/java/java/math/Division.java
     libcore/math/src/main/java/java/math/Elementary.java
     libcore/math/src/main/java/java/math/Logical.java
     libcore/math/src/main/java/java/math/MathContext.java
     libcore/math/src/main/java/java/math/Multiplication.java
     libcore/math/src/main/java/java/math/Primality.java
     libcore/math/src/main/java/java/math/RoundingMode.java
     libcore/math/src/test/java/tests/api/java/math/BigDecimalTest.java
     libcore/math/src/test/java/tests/api/java/math/BigIntegerTest.java

commit 4fda354bd7d2c0ee918c86fa89852310cc8f2af7
Author: Jesse Wilson <jessewilson@google.com>
Date:   Wed Jul 29 17:12:27 2009 -0700

    Dalvik Math

commit 10640b6b254200f1c89553072e50137f6ad46c84
Author: Jesse Wilson <jessewilson@google.com>
Date:   Wed Jul 29 17:11:07 2009 -0700

    Math 772995

commit 15302f6d09b3547f1018e3d228f233f8f72c7de9
Author: Jesse Wilson <jessewilson@google.com>
Date:   Wed Jul 29 17:08:19 2009 -0700

    Math 527399

14 years agoThrow an exception instead of aborting in DexFile.
Andy McFadden [Tue, 4 Aug 2009 19:09:29 +0000 (12:09 -0700)]
Throw an exception instead of aborting in DexFile.

If presented with an invalid DexFile cookie -- perhaps because somebody
called DexFile.close() twice -- the VM would unceremoniously abort.
This was reported as a bug (external #2443).  We now throw a simple
exception.

For internal bug 1794406.

14 years agoTry to connect to all the IP addresses of a host instead of just the first.
Lorenzo Colitti [Wed, 29 Jul 2009 00:54:40 +0000 (17:54 -0700)]
Try to connect to all the IP addresses of a host instead of just the first.

14 years agomerge from donut
Jean-Baptiste Queru [Mon, 3 Aug 2009 14:45:27 +0000 (07:45 -0700)]
merge from donut

15 years agoFixed 2 floating point bugs; improved debug output; armv7-a thumb2 inline sqrt
Bill Buzbee [Sat, 1 Aug 2009 18:32:36 +0000 (11:32 -0700)]
Fixed 2 floating point bugs; improved debug output; armv7-a thumb2 inline sqrt

15 years agoMerge change 9395
Android (Google) Code Review [Sat, 1 Aug 2009 16:04:06 +0000 (09:04 -0700)]
Merge change 9395

* changes:
  Stage 3 of Thumb2 support. armv7-a now generates vfp code inline.

15 years agoStage 3 of Thumb2 support. armv7-a now generates vfp code inline.
Bill Buzbee [Thu, 30 Jul 2009 17:52:29 +0000 (10:52 -0700)]
Stage 3 of Thumb2 support. armv7-a now generates vfp code inline.

15 years agoMerge change 9414
Android (Google) Code Review [Fri, 31 Jul 2009 23:26:37 +0000 (16:26 -0700)]
Merge change 9414

* changes:
  Fix a LOGVV.

15 years agoMerge change 9384
Android (Google) Code Review [Fri, 31 Jul 2009 23:24:13 +0000 (16:24 -0700)]
Merge change 9384

* changes:
  Added VMDebug.crash() (hidden).

15 years agoFix a LOGVV.
Andy McFadden [Fri, 31 Jul 2009 23:24:12 +0000 (16:24 -0700)]
Fix a LOGVV.

Somebody on android-porting stumbled over this.

15 years agoAdded VMDebug.crash() (hidden).
Andy McFadden [Fri, 31 Jul 2009 20:54:59 +0000 (13:54 -0700)]
Added VMDebug.crash() (hidden).

This call prints the stack trace for the current thread, and then
crashes the VM so you can see the native stack trace too.  Useful for
figuring out "how did I get here?" situations.

15 years agoIndirect reference table implementation.
Andy McFadden [Fri, 17 Jul 2009 01:11:22 +0000 (18:11 -0700)]
Indirect reference table implementation.

This change introduces the "indirect" reference table, which will be
replacing ReferenceTable for local and global JNI references.  The key
difference is that, instead of handing raw Object pointers to JNI, we
will be giving them a magic value that can be converted back to an
Object.  The goal is to avoid having to pin every object that native
code is aware of.

The code is not actually used anywhere yet.

Also bundled up here:
 - added detail to a log message
 - fixed a string format issue in the internal assert() definition
 - very minor optimization in "remove" function in ReferenceTable
 - quiet a gcc complaint
 - only include the hash table regression test in builds that invoke it

15 years agoMerge change 8953
Android (Google) Code Review [Thu, 30 Jul 2009 21:21:19 +0000 (14:21 -0700)]
Merge change 8953

* changes:
  Store all IP addresses for a hostname instead of just one.

15 years agoStore all IP addresses for a hostname instead of just one.
Lorenzo Colitti [Wed, 29 Jul 2009 00:55:00 +0000 (17:55 -0700)]
Store all IP addresses for a hostname instead of just one.

15 years agoMerge change 9190
Android (Google) Code Review [Thu, 30 Jul 2009 17:49:00 +0000 (10:49 -0700)]
Merge change 9190

* changes:
  Minor tweak (TEQS -> TEQ).

15 years agoMinor tweak (TEQS -> TEQ).
Andy McFadden [Thu, 30 Jul 2009 17:50:14 +0000 (10:50 -0700)]
Minor tweak (TEQS -> TEQ).

Avoids "Warning: s suffix on comparison instruction is deprecated".

15 years agoam bd79e449: Fix an issue where we\'re adding 4x the intended offset.
Jesse Wilson [Thu, 30 Jul 2009 16:56:34 +0000 (09:56 -0700)]
am bd79e449: Fix an issue where we\'re adding 4x the intended offset.

Merge commit 'bd79e4498465381117f2cbc6399a256061f1d144'

* commit 'bd79e4498465381117f2cbc6399a256061f1d144':
  Fix an issue where we're adding 4x the intended offset.

15 years agoam 29326482: Removing MD2
Urs Grob [Thu, 30 Jul 2009 13:56:17 +0000 (06:56 -0700)]
am 29326482: Removing MD2

Merge commit '2932648271e72bad181b293e1fa5945265c7dbed'

* commit '2932648271e72bad181b293e1fa5945265c7dbed':
  Removing MD2

15 years agoMerge change 9042
Android (Google) Code Review [Wed, 29 Jul 2009 23:16:12 +0000 (16:16 -0700)]
Merge change 9042

* changes:
  Update bytecode verifier info.

15 years agoUpdate bytecode verifier info.
Andy McFadden [Wed, 29 Jul 2009 23:07:01 +0000 (16:07 -0700)]
Update bytecode verifier info.

Rewrote last section to describe deferred verification error reporting.
Added note about structured locking checks.

15 years agoFix an issue where we're adding 4x the intended offset.
Jesse Wilson [Tue, 28 Jul 2009 23:49:40 +0000 (16:49 -0700)]
Fix an issue where we're adding 4x the intended offset.

We were doing pointer arithmetic of mixed types (jint* and jint),
and the type conversion ended up causing the offset to be converted
an extra time.

15 years agomerge from donut
Jean-Baptiste Queru [Wed, 29 Jul 2009 21:56:48 +0000 (14:56 -0700)]
merge from donut

15 years agoMerge change 9014
Android (Google) Code Review [Wed, 29 Jul 2009 20:59:24 +0000 (13:59 -0700)]
Merge change 9014

* changes:
  Fixing some broken links in the concurrent Javadoc.

15 years agoFixing some broken links in the concurrent Javadoc.
Jesse Wilson [Wed, 29 Jul 2009 20:45:14 +0000 (13:45 -0700)]
Fixing some broken links in the concurrent Javadoc.

There's a bug in droiddoc where links to methods with generic parameters
don't resolve correctly. I'll open a buganizer issue for this; in the
interim I've simply dropped the parameters for the offending links.

15 years agoFixing Executors to use raw types, which is what RI v5 does.
Jesse Wilson [Wed, 29 Jul 2009 18:39:24 +0000 (11:39 -0700)]
Fixing Executors to use raw types, which is what RI v5 does.

Also fixing VMStack to hide the new API method.

15 years agoMerge change 8903
Android (Google) Code Review [Wed, 29 Jul 2009 17:00:32 +0000 (10:00 -0700)]
Merge change 8903

* changes:
  Update concurrent module to Harmony r798021.

15 years agoRemoving MD2
Urs Grob [Wed, 22 Jul 2009 18:06:03 +0000 (20:06 +0200)]
Removing MD2

15 years agoUpdate concurrent module to Harmony r798021.
Jesse Wilson [Wed, 29 Jul 2009 00:34:57 +0000 (17:34 -0700)]
Update concurrent module to Harmony r798021.

commit 56bcdc2a3b881883409267c3bd16294d80716859
Merge: 903691a f429dca
Author: Jesse Wilson <jessewilson@google.com>
Date:   Mon Jul 27 17:33:19 2009 -0700

    Merge branch 'concurrent_798021' into concurrent_dalvik

    Conflicts:
     libcore/concurrent/.classpath
     libcore/concurrent/build.xml
     libcore/concurrent/make/run-test.xml
     libcore/concurrent/src/main/java/java/util/concurrent/ArrayBlockingQueue.java
     libcore/concurrent/src/main/java/java/util/concurrent/BlockingQueue.java
     libcore/concurrent/src/main/java/java/util/concurrent/ConcurrentHashMap.java
     libcore/concurrent/src/main/java/java/util/concurrent/ConcurrentLinkedQueue.java
     libcore/concurrent/src/main/java/java/util/concurrent/ConcurrentMap.java
     libcore/concurrent/src/main/java/java/util/concurrent/CopyOnWriteArrayList.java
     libcore/concurrent/src/main/java/java/util/concurrent/CopyOnWriteArraySet.java
     libcore/concurrent/src/main/java/java/util/concurrent/DelayQueue.java
     libcore/concurrent/src/main/java/java/util/concurrent/LinkedBlockingQueue.java
     libcore/concurrent/src/main/java/java/util/concurrent/PriorityBlockingQueue.java
     libcore/concurrent/src/main/java/java/util/concurrent/ScheduledThreadPoolExecutor.java
     libcore/concurrent/src/main/java/java/util/concurrent/Semaphore.java
     libcore/concurrent/src/main/java/java/util/concurrent/SynchronousQueue.java
     libcore/concurrent/src/main/java/java/util/concurrent/ThreadPoolExecutor.java
     libcore/concurrent/src/main/java/java/util/concurrent/TimeUnit.java
     libcore/concurrent/src/main/java/java/util/concurrent/atomic/AtomicBoolean.java
     libcore/concurrent/src/main/java/java/util/concurrent/atomic/AtomicInteger.java
     libcore/concurrent/src/main/java/java/util/concurrent/atomic/AtomicIntegerArray.java
     libcore/concurrent/src/main/java/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java
     libcore/concurrent/src/main/java/java/util/concurrent/atomic/AtomicLong.java
     libcore/concurrent/src/main/java/java/util/concurrent/atomic/AtomicLongArray.java
     libcore/concurrent/src/main/java/java/util/concurrent/atomic/AtomicLongFieldUpdater.java
     libcore/concurrent/src/main/java/java/util/concurrent/atomic/AtomicReference.java
     libcore/concurrent/src/main/java/java/util/concurrent/atomic/AtomicReferenceArray.java
     libcore/concurrent/src/main/java/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java
     libcore/concurrent/src/main/java/java/util/concurrent/atomic/package.html
     libcore/concurrent/src/main/java/java/util/concurrent/locks/AbstractQueuedSynchronizer.java
     libcore/concurrent/src/main/java/java/util/concurrent/locks/LockSupport.java
     libcore/concurrent/src/main/java/java/util/concurrent/locks/ReentrantReadWriteLock.java
     libcore/concurrent/src/main/java/java/util/concurrent/locks/package.html
     libcore/concurrent/src/main/java/java/util/concurrent/package.html
     libcore/concurrent/src/test/java/tests/api/java/util/concurrent/AtomicLongFieldUpdaterTest.java
     libcore/concurrent/src/test/java/tests/api/java/util/concurrent/AtomicReferenceFieldUpdaterTest.java
     libcore/concurrent/src/test/java/tests/api/java/util/concurrent/AtomicReferenceTest.java
     libcore/concurrent/src/test/java/tests/api/java/util/concurrent/ConcurrentHashMapTest.java
     libcore/concurrent/src/test/java/tests/api/java/util/concurrent/DelayQueueTest.java
     libcore/concurrent/src/test/java/tests/api/java/util/concurrent/ExecutorsTest.java
     libcore/concurrent/src/test/java/tests/api/java/util/concurrent/JSR166TestCase.java
     libcore/concurrent/src/test/java/tests/api/java/util/concurrent/LinkedBlockingQueueTest.java
     libcore/concurrent/src/test/java/tests/api/java/util/concurrent/LockSupportTest.java
     libcore/concurrent/src/test/java/tests/api/java/util/concurrent/ReentrantLockTest.java
     libcore/concurrent/src/test/java/tests/api/java/util/concurrent/ReentrantReadWriteLockTest.java

commit 903691ae71cff640d5487a3d34a20e8767dbfb66
Author: Jesse Wilson <jessewilson@google.com>
Date:   Mon Jul 27 16:09:58 2009 -0700

    Dalvik Concurrent

commit f429dca21c408ee62e688f60d5e110718374e944
Author: Jesse Wilson <jessewilson@google.com>
Date:   Mon Jul 27 16:08:25 2009 -0700

    Concurrent 798021

commit b2c76fdd1056113000140bc4af57300c87469d2d
Author: Jesse Wilson <jessewilson@google.com>
Date:   Mon Jul 27 16:03:45 2009 -0700

    Concurrent 527399

15 years agoMerge change 8867
Android (Google) Code Review [Tue, 28 Jul 2009 22:14:16 +0000 (15:14 -0700)]
Merge change 8867

* changes:
  Fix for 1857865: Need x86 implementation for OP_THROW_VERIFICATION_ERROR

15 years agoFix for 1857865: Need x86 implementation for OP_THROW_VERIFICATION_ERROR
Bill Buzbee [Tue, 28 Jul 2009 22:02:22 +0000 (15:02 -0700)]
Fix for 1857865: Need x86 implementation for OP_THROW_VERIFICATION_ERROR

15 years agoPrevent OP_INVOKE_DIRECT_EMPTY from terminating a trace
Bill Buzbee [Tue, 28 Jul 2009 20:28:25 +0000 (13:28 -0700)]
Prevent OP_INVOKE_DIRECT_EMPTY from terminating a trace

15 years agoStage 2 of structural changes for support of THUMB2. No logic changes.
Bill Buzbee [Tue, 28 Jul 2009 18:22:22 +0000 (11:22 -0700)]
Stage 2 of structural changes for support of THUMB2.  No logic changes.

15 years agoFix for 3326: Incorrect return value from native library in dalvik
Bill Buzbee [Mon, 27 Jul 2009 22:51:54 +0000 (15:51 -0700)]
Fix for 3326: Incorrect return value from native library in dalvik
Really a workaround for a gcc bug in 4.3.  Don't trust the C compiler
to properly clear high bits from < 32-bit JNI return values.

15 years agoMerge change 5582
Android (Google) Code Review [Tue, 28 Jul 2009 01:08:32 +0000 (18:08 -0700)]
Merge change 5582

* changes:
  Integrate luni module (but not tests) to Harmony r772995.