OSDN Git Service
Carl Shapiro [Sat, 10 Jul 2010 00:41:26 +0000 (17:41 -0700)]
When aliasing a bitmap, use smallest available limit.
The original implementation of the bitmap aliasing routine chose the
conservative max value of the heap limit. This is perfect for the
zygote but is oversized for application heaps that are not anywhere
near full. Now the code consults the live bitmap and will use its max
value if it is smaller than the heap limit.
Change-Id: I7cf223efdeaed318922a8a5f9e147092e539da6c
Carl Shapiro [Sat, 10 Jul 2010 00:35:15 +0000 (17:35 -0700)]
Make the compiler's MIN and MAX macros globally visible.
Change-Id: Ic04aa35276df783b1d9eacede9627fd3e0b9acb6
Carl Shapiro [Fri, 9 Jul 2010 23:50:54 +0000 (16:50 -0700)]
Use the new pendingNext field to thread pending references.
Presently, the garbage collector uses the queueNext field to thread
references discovered during a trace. This is unsafe as a user may
simultaniously call enqueue on a discovered reference which will alias
the queue of pending references to the queue of a reference queue.
To avoid this problem, the garbage collector uses the pendingNext
field to thread together pending references. If, during reference
processing, the garbage collector discovers that an object has been
enqueued by the user, it will short circuit referencing processing for
that object.
As part of this change, the the reference object processing routines
have been reorganized to eliminate the macrology used by the pending
reference queueing. In addition, the pending reference lists are now
circular to ensure pendingNext of a pending reference is never NULL.
Change-Id: Id855aa295dd835eacc8d5e765f4edbb869c104b7
Barry Hayes [Fri, 9 Jul 2010 21:34:35 +0000 (14:34 -0700)]
Merge "Some formatting and commenting clean-up." into dalvik-dev
Barry Hayes [Fri, 9 Jul 2010 19:53:49 +0000 (12:53 -0700)]
Some formatting and commenting clean-up.
Change-Id: Icc166d98fe9c0fb03a51f9fbfa2e5765b75af8f5
buzbee [Fri, 9 Jul 2010 21:18:06 +0000 (14:18 -0700)]
am
2566990f: resolved conflicts for merge of
c62fc717 to master
Merge commit '
2566990f30f31c6e2bbcbabab26b925e5504ce37' into dalvik-dev
* commit '
2566990f30f31c6e2bbcbabab26b925e5504ce37':
JIT: Fix for
2813841, use core regs for sub-word data
buzbee [Fri, 9 Jul 2010 20:59:19 +0000 (13:59 -0700)]
resolved conflicts for merge of
c62fc717 to master
Change-Id: I80b9e0e2334ae47d62d3e956f5b9505ef285572e
Bill Buzbee [Fri, 9 Jul 2010 19:39:36 +0000 (12:39 -0700)]
am
856d111c: am
b6d37288: JIT: Fix for
2813841, use core regs for sub-word data
Merge commit '
856d111c4c87e4b47c71954dc6548e636295ea50' into gingerbread-plus-aosp
* commit '
856d111c4c87e4b47c71954dc6548e636295ea50':
JIT: Fix for
2813841, use core regs for sub-word data
Bill Buzbee [Fri, 9 Jul 2010 19:37:59 +0000 (12:37 -0700)]
am
b6d37288: JIT: Fix for
2813841, use core regs for sub-word data
Merge commit '
b6d372886d145716f1f62d39726ea06255ebe76d' into gingerbread
* commit '
b6d372886d145716f1f62d39726ea06255ebe76d':
JIT: Fix for
2813841, use core regs for sub-word data
Bill Buzbee [Wed, 7 Jul 2010 13:55:56 +0000 (06:55 -0700)]
JIT: Fix for
2813841, use core regs for sub-word data
In an attempt to avoid unnecessary register copies, the JIT allows
data items to live in either floating point or core registers until
an instruction is used which requires one or the other. The bug here
was that sub-word data was allowed to live in floating point registers
at the point of a load or store. This cl forces the use of core registers
in those cases.
Change-Id: Iaee57545c6a62990186a5d0ab5bb22728d75dd60
Andy McFadden [Fri, 9 Jul 2010 18:23:05 +0000 (11:23 -0700)]
Merge "Handle NULL return from class loader." into dalvik-dev
Andy McFadden [Fri, 9 Jul 2010 17:52:19 +0000 (10:52 -0700)]
Handle NULL return from class loader.
The VM was asserting that it couldn't happen, when it fact it can quite
easily if a class loader is broken.
Bug
2817346.
Change-Id: Id2a4edab428a0ef0fa9aabc8e4a7f6a4d614fb9e
Andy McFadden [Fri, 9 Jul 2010 16:50:01 +0000 (09:50 -0700)]
Andy McFadden [Thu, 8 Jul 2010 22:43:19 +0000 (15:43 -0700)]
Fix thread names.
The prctl() call we were using politely truncates overly-long strings.
The pthread_setname_np() call returns ERANGE. This adds a buffer
copy to create a truncated string.
I'm strongly tempted to just back out the previous change and go
back to using prctl(), but there's probably some value in using a
pthread call, even if it is _np (and appears to exist but declared
differently on other platforms).
Change-Id: Ib692ea0e225f691e4888b27883c61f7701272245
Barry Hayes [Tue, 22 Jun 2010 19:32:59 +0000 (12:32 -0700)]
Quicker partial collection by using card marking.
Add calls to the card marking from the write barrier routines, so that
a write to an Object marks the appropriate card. Add code in the GC to
use and rebuild the cards at a partial GC, clearing cards in the
Zygote heap which do not in fact contain references to the application
heap.
Change-Id: Ie6f29fd096e029f48085715b282b6db8a7122555
Andy McFadden [Wed, 7 Jul 2010 21:41:04 +0000 (14:41 -0700)]
Merge "Only emit cat1 volatile ops in SMP builds." into dalvik-dev
Andy McFadden [Wed, 7 Jul 2010 21:09:09 +0000 (14:09 -0700)]
Only emit cat1 volatile ops in SMP builds.
After consultation with the JITSquad, we no longer emit volatile
field access instructions for category 1 values unless ANDROID_SMP
is nonzero.
See also bug
2781881.
Change-Id: I58041572f6cf9308a8a125200dc419ce9d3d8d12
Bill Buzbee [Wed, 7 Jul 2010 18:29:18 +0000 (11:29 -0700)]
Merge "JIT: Fix for
2813841, use core regs for sub-word data" into dalvik-dev
Bill Buzbee [Wed, 7 Jul 2010 13:55:56 +0000 (06:55 -0700)]
JIT: Fix for
2813841, use core regs for sub-word data
In an attempt to avoid unnecessary register copies, the JIT allows
data items to live in either floating point or core registers until
an instruction is used which requires one or the other. The bug here
was that sub-word data was allowed to live in floating point registers
at the point of a load or store. This cl forces the use of core registers
in those cases.
Change-Id: I60c2a0d1df9a299f6c5130371f44f2be9c348ded
Andy McFadden [Wed, 7 Jul 2010 14:51:47 +0000 (07:51 -0700)]
am
e5289ebc: Merge "Use pthread_setname_np when available."
Merge commit '
e5289ebcda44ae0167d29f482cbb521f51e49f96' into dalvik-dev
* commit '
e5289ebcda44ae0167d29f482cbb521f51e49f96':
Use pthread_setname_np when available.
Andy McFadden [Wed, 7 Jul 2010 14:40:41 +0000 (07:40 -0700)]
Merge "Use pthread_setname_np when available."
Elliott Hughes [Fri, 2 Jul 2010 20:47:14 +0000 (13:47 -0700)]
Merge "Disambiguate method overloads in -Xjitverbose output." into dalvik-dev
Elliott Hughes [Fri, 2 Jul 2010 20:38:44 +0000 (13:38 -0700)]
Disambiguate method overloads in -Xjitverbose output.
Before:
TRACEINFO (35): 0x41660904 Ljava/lang/AbstractStringBuilder;append0 0xe 11 of 25, 4 blocks
...
TRACEINFO (36): 0x41660a30 Ljava/lang/AbstractStringBuilder;append0 0x16 8 of 33, 6 blocks
After:
TRACEINFO (35): 0x41660904 Ljava/lang/AbstractStringBuilder;append0.(C)V 0xe 11 of 25, 4 blocks
...
TRACEINFO (36): 0x41660a30 Ljava/lang/AbstractStringBuilder;append0.(Ljava/lang/String;)V 0x16 8 of 33, 6 blocks
Change-Id: I73ee3b0981bf8db24322b1e9a0fec34f989c55b1
Ben Cheng [Fri, 2 Jul 2010 20:12:24 +0000 (13:12 -0700)]
am
1c52e6d2: Properly set the entry point for the dbg > mterp transition.
Merge commit '
1c52e6d208b0455be1880e50a2fdb2c2206ec3f7' into dalvik-dev
* commit '
1c52e6d208b0455be1880e50a2fdb2c2206ec3f7':
Properly set the entry point for the dbg > mterp transition.
Ben Cheng [Fri, 2 Jul 2010 20:00:39 +0000 (13:00 -0700)]
Properly set the entry point for the dbg > mterp transition.
Bug:
2810533
Change-Id: I511543a9ae3ea3abc358a7982c0e5b4ab79bf58a
Carl Shapiro [Fri, 2 Jul 2010 18:13:35 +0000 (11:13 -0700)]
Add two new stubs to fix the copying collector build.
Change-Id: I9f9c81ff5335100bbb21d43278a8cdd21a64ba56
Carl Shapiro [Fri, 2 Jul 2010 17:50:57 +0000 (10:50 -0700)]
Minor clean-up of thread status changes.
Eliminate the obsolete self != NULL test when acquiring the heap lock.
This should be redundant now that threads are added to the thread list
before they are able to allocate.
Switch to using a variable of the ThreadStatus type to store thread
status values rather than an ordinary int.
Change-Id: I8d30e69f20d5321a04f6b49322f13b3577d5a3c4
Carl Shapiro [Fri, 2 Jul 2010 00:44:46 +0000 (17:44 -0700)]
Allow allocation during a concurrent GC.
Previously, any thread performing a GC held the heap lock for the
entire GC. If the GC performed was a concurrent GC, mutator threads
that allocate during the GC would be blocked until the GC completed.
With this change, if the GC performed is a concurrent GC, the heap
lock is released while the roots are being traced. If a mutator
thread allocates an object from available storage, the allocation
proceeds. If a mutator thread attempts to allocate an object larger
than available storage, the thread will block until the GC completes.
Change-Id: I91a04179c6f583f878b685405a6fdd16b9995017
Carl Shapiro [Thu, 1 Jul 2010 20:57:38 +0000 (13:57 -0700)]
resolved conflicts for merge of
225bfdd0 to dalvik-dev
Change-Id: I588a015e06ad87f492b02bed31ff64eeb49c3d0c
Carl Shapiro [Thu, 1 Jul 2010 20:30:53 +0000 (13:30 -0700)]
Merge "Eliminate the only use of the releasing swap name."
The Android Open Source Project [Thu, 1 Jul 2010 19:03:42 +0000 (12:03 -0700)]
am
bdddc792: am
c399a2ca: merge from open-source master
Merge commit '
bdddc7926f70185bb5af05d41e1ac935fbbb8649' into dalvik-dev
* commit '
bdddc7926f70185bb5af05d41e1ac935fbbb8649':
Don't prelink dalvik for x86
The Android Open Source Project [Thu, 1 Jul 2010 18:56:19 +0000 (11:56 -0700)]
am
c399a2ca: merge from open-source master
Merge commit '
c399a2caea7660b7e6ed6f816440edd73ba7ff37'
* commit '
c399a2caea7660b7e6ed6f816440edd73ba7ff37':
Don't prelink dalvik for x86
Andy McFadden [Thu, 1 Jul 2010 18:23:15 +0000 (11:23 -0700)]
Use pthread_setname_np when available.
Switch from HAVE_PTHREAD_SETNAME_NP to HAVE_ANDROID_PTHREAD_SETNAME_NP.
The change to favor it over prctl() already went in (external change
https://review.source.android.com/#change,15205 ).
Change-Id: I3804b4c9d828d7a125cc4f0c8030e5832b5aeaf4
The Android Open Source Project [Thu, 1 Jul 2010 17:37:36 +0000 (10:37 -0700)]
merge from open-source master
Change-Id: I3534c806a396de3365ef7278a9c4799f7f95e0e7
Bruce Beare [Fri, 25 Jun 2010 16:53:56 +0000 (09:53 -0700)]
Don't prelink dalvik for x86
x86 doesn't (yet) support pre-linking and we need to disable it until it does.
Change-Id: Icfba41c364ed934632386e2fa7f50844dabd126e
Signed-off-by: Bruce Beare <brucex.j.beare@intel.com>
Carl Shapiro [Wed, 30 Jun 2010 23:50:00 +0000 (16:50 -0700)]
Eliminate the only use of the releasing swap name.
Change-Id: I5e59c5b364c4155b179ceb9c16d2c4baae6cd2ea
Bill Buzbee [Wed, 30 Jun 2010 22:54:03 +0000 (15:54 -0700)]
am
de833dc1: am
14628323: am
79d2a00a: am
6296a2e8: Jit: Fix for
2793725 SIGSEGV in JIT code cache
Merge commit '
de833dc1fb3088985d86b5f1640bbde3ec8fd6d5' into dalvik-dev
* commit '
de833dc1fb3088985d86b5f1640bbde3ec8fd6d5':
Jit: Fix for
2793725 SIGSEGV in JIT code cache
Bill Buzbee [Wed, 30 Jun 2010 22:49:05 +0000 (15:49 -0700)]
am
14628323: am
79d2a00a: am
6296a2e8: Jit: Fix for
2793725 SIGSEGV in JIT code cache
Merge commit '
14628323c84aa14cd9c2ffa9166a0445e863a50c'
* commit '
14628323c84aa14cd9c2ffa9166a0445e863a50c':
Jit: Fix for
2793725 SIGSEGV in JIT code cache
Bill Buzbee [Wed, 30 Jun 2010 22:33:19 +0000 (15:33 -0700)]
am
79d2a00a: am
6296a2e8: Jit: Fix for
2793725 SIGSEGV in JIT code cache
Merge commit '
79d2a00ab79b07f4a69035f9f7fb922fd0552122' into gingerbread-plus-aosp
* commit '
79d2a00ab79b07f4a69035f9f7fb922fd0552122':
Jit: Fix for
2793725 SIGSEGV in JIT code cache
Brian Carlstrom [Wed, 30 Jun 2010 19:36:14 +0000 (12:36 -0700)]
Revert change of test automerged from master
Change-Id: I2c28ca62129f190b9f71249d53731e7220358474
Bill Buzbee [Wed, 30 Jun 2010 19:08:06 +0000 (12:08 -0700)]
am
6296a2e8: Jit: Fix for
2793725 SIGSEGV in JIT code cache
Merge commit '
6296a2e8e97d76165a83320b06e32fba0f5a5625' into gingerbread
* commit '
6296a2e8e97d76165a83320b06e32fba0f5a5625':
Jit: Fix for
2793725 SIGSEGV in JIT code cache
Bill Buzbee [Wed, 23 Jun 2010 23:36:50 +0000 (16:36 -0700)]
Jit: Fix for
2793725 SIGSEGV in JIT code cache
r7 and r8 were missing from the handler clobber set, and are stepped on by
the handlers for inline string compareto and indexof.
Change-Id: I979c4b94ee412cb3d2ab76c2421f4c2336d9b6e3
Elliott Hughes [Wed, 30 Jun 2010 18:42:42 +0000 (11:42 -0700)]
Merge "Improve System.arraycopy's ArrayIndexOutOfBoundsException messages." into dalvik-dev
Elliott Hughes [Wed, 30 Jun 2010 00:17:42 +0000 (17:17 -0700)]
Improve System.arraycopy's ArrayIndexOutOfBoundsException messages.
This has been handy for me a few times, and with Froyo's bug reporting
improvements, more third-party developers will be trying to debug remotely
and after the fact, so this might help them too.
Change-Id: I17abe6e91e487c02b782f62245392fbcbe5baf8e
Brian Carlstrom [Wed, 30 Jun 2010 18:01:59 +0000 (11:01 -0700)]
am
0d3291c7: Merge remote branch \'goog/dalvik-dev\' into mm
Merge commit '
0d3291c78488fc64455270c42e4a70d433e11f33' into dalvik-dev
* commit '
0d3291c78488fc64455270c42e4a70d433e11f33':
Brian Carlstrom [Wed, 30 Jun 2010 16:28:53 +0000 (09:28 -0700)]
Merge remote branch 'goog/dalvik-dev' into mm
Change-Id: I4346c9891939e589c627b9de4d71b959ed8f3b51
Andy McFadden [Mon, 28 Jun 2010 23:21:20 +0000 (16:21 -0700)]
Emit volatile field access instructions.
Easier said than done. The trick is that we need to ensure that the
instruction replacement happens even if the verifier and optimizer
are not enabled in dexopt.
We're currently doing the -wide-volatile replacement during
verification, but that's not so great, since we collapse things like
iget-byte and iget-char into a single iget-volatile, losing the field
width. We could recover it from the field declaration, but doing it
during verification is really just sort of wrong to begin with.
The substitution isn't technically an "optimization", but it's easiest
to do it during the opt pass, and we already have a convenient "is
optimized" flag that helps ensure that we do the replacement pass
exactly once.
Optimizing at run time means making a private copy of shared pages,
because the pages are mapped shared/read-only out of the DEX file.
We could use up a lot of physical memory if we applied all possible
optimizations, so we need a notion of "essential" and "non-essential"
optimizations. If we're not running in dexopt, we only do the
essential ones, which should leave most methods untouched.
Replacement of 32-bit instructions is only strictly necessary when
we're building for SMP. On a uniprocessor, the 32-bit operations
are inherently atomic, and memory barriers aren't required. However,
the JIT may benefit from having volatile accesses identified by opcode.
Since the current branch doesn't support any SMP products, I'm enabling
the instruction generation for all platforms so that we can give it
some exercise.
While making this change I noticed that the exclusion mechanism for
breakpoints and optimization/verification was only serving to avoid
a data race (e.g. breakpoint being overwritten by an instruction
rewrite). It wasn't guaranteed to prevent races when two threads
toggled pages between read-write and read-only while making an update,
since a 4K page can hold code for more than one class. This has been
corrected by adding a mutex.
This change:
- Introduces the notion of essential vs. non-essential optimizations.
- Adds generation of 32-bit *-volatile instructions for all platforms.
- Moves generation of *-wide-volatile from the verifier to the optimizer.
- Allows the optimizer to modify code at run time.
- Tweaks optimizeMethod() for "best effort" rather than "fail early".
- Adds a DEX-granularity mutex to the bytecode update functions.
This also begins the removal of PROFILE_FIELD_ACCESS, which hasn't been
used for much and is mostly just in the way.
Change-Id: I4ac9fa5e1ac5f9a1d106c662c3deee90d62895aa
Barry Hayes [Wed, 30 Jun 2010 14:33:56 +0000 (07:33 -0700)]
Merge "Bullet-proof dvmFreeClassInnards from unexpected or NULL descriptor." into dalvik-dev
Elliott Hughes [Wed, 30 Jun 2010 00:06:11 +0000 (17:06 -0700)]
Merge "Add missing ']'s in ARM disassembler output." into dalvik-dev
Elliott Hughes [Tue, 29 Jun 2010 23:56:52 +0000 (16:56 -0700)]
Add missing ']'s in ARM disassembler output.
Also insert missing spaces after commas in some loads and stores.
Change-Id: I1dad10eb86ef8dc0d0ab4b3b98c94d3a7663861e
Barry Hayes [Tue, 29 Jun 2010 18:14:20 +0000 (11:14 -0700)]
Bullet-proof dvmFreeClassInnards from unexpected or NULL descriptor.
Change-Id: I1641dcedf502ce5936c5f9c07206401ddcbcf999
Carl Shapiro [Tue, 29 Jun 2010 19:08:49 +0000 (12:08 -0700)]
Merge "Remove code superseded by the pre- and post-verify switches." into dalvik-dev
Andy McFadden [Mon, 28 Jun 2010 23:57:24 +0000 (16:57 -0700)]
Change how a null threadgroup is displayed.
We used to show "(BOGUS GROUP)", but that's not quite accurate since
the group is actually NULL. Since there are now circumstances in
which you see this, and they'll likely be associated with Thread
initialization, it's more accurate and useful to say
"(null; initializing?)" instead.
Bug
2804256.
Change-Id: I2b18b5ee37ac3c4eaf804c01aa68d922f0af0ac3
Carl Shapiro [Tue, 29 Jun 2010 06:05:54 +0000 (23:05 -0700)]
Remove code superseded by the pre- and post-verify switches.
Change-Id: Iacd45b8b0f64a4e215011b865f57df75c4a08981
Carl Shapiro [Tue, 29 Jun 2010 06:02:08 +0000 (23:02 -0700)]
Fix a comment.
Change-Id: I6ead8dc42e06662c6189d0639551d08d8c2b64c4
Carl Shapiro [Tue, 29 Jun 2010 00:24:17 +0000 (17:24 -0700)]
Fix a deadlock in when shutting down the GC thread.
Change-Id: Ief3ec542db45c911ece7b9d02359a9326c5e14c8
Carl Shapiro [Mon, 28 Jun 2010 23:28:26 +0000 (16:28 -0700)]
Add a mode for concurrently marking and sweeping.
When enabled, the mutator threads will be resumed while tracing
proceeds from the roots. After the trace completes the mutator
threads are suspended, the roots are remarked, and marked objects
are scanned for updates and re-marked.
There are two limitations to this implementation. For the sake
of expediency, mutators are not permitted to allocate during the
concurrent marking phase. This will be addressed in a subsequent
change. As there is no write barrier, all objects, rather than
just those objects assigned to during the concurrent phase, are
scanned for updates. This will be addressed after a write barrier
is implemented.
Change-Id: I82dba23b58a1cf985589ed21ec0cffb5ebf48aae
Carl Shapiro [Sat, 26 Jun 2010 00:31:51 +0000 (17:31 -0700)]
Merge "Remove an obsolete TODO." into dalvik-dev
Carl Shapiro [Sat, 26 Jun 2010 00:27:59 +0000 (17:27 -0700)]
Remove an obsolete TODO.
Change-Id: Ie1b79eec88bf410548d42faca4f511387859e02d
The Android Open Source Project [Fri, 25 Jun 2010 21:27:22 +0000 (14:27 -0700)]
am
11b4c7c0: am
5439ba57: merge from froyo-plus-aosp
Merge commit '
11b4c7c0934cbf93f737f8c52cec68fbbd415145' into dalvik-dev
* commit '
11b4c7c0934cbf93f737f8c52cec68fbbd415145':
dalvik: use pthread_setname_np() to set the name of the current thread
The Android Open Source Project [Fri, 25 Jun 2010 21:20:53 +0000 (14:20 -0700)]
am
5439ba57: merge from froyo-plus-aosp
Merge commit '
5439ba5780631d04fcded7c605eb00271b1a449c'
* commit '
5439ba5780631d04fcded7c605eb00271b1a449c':
dalvik: use pthread_setname_np() to set the name of the current thread
Barry Hayes [Fri, 25 Jun 2010 21:08:49 +0000 (14:08 -0700)]
Merge "Fixing up #ifndef inlcude name." into dalvik-dev
Barry Hayes [Fri, 25 Jun 2010 20:50:29 +0000 (13:50 -0700)]
Fixing up #ifndef inlcude name.
Change-Id: I0dd2f8c18aaaf4cea7b7a6df44e42f889af90ed6
Barry Hayes [Fri, 25 Jun 2010 20:40:38 +0000 (13:40 -0700)]
Merge "Move WriteBarrier operations into their own header file. Split Object.h" into dalvik-dev
Barry Hayes [Fri, 25 Jun 2010 20:36:37 +0000 (13:36 -0700)]
Move WriteBarrier operations into their own header file. Split Object.h
The write barrier routines will soon be INLINE and non-null. Buried
in the middle of Object.h, which is early in Dalvik.h, it would be
hard for them to make use of definitions in other .h files.
Change-Id: I3c0eb59cb6ef29c2bacd0432cf59aaca4c3d031c
Jesse Wilson [Fri, 25 Jun 2010 18:32:43 +0000 (11:32 -0700)]
Merge "Extending the maximum length of a boot classpath." into dalvik-dev
Jesse Wilson [Fri, 25 Jun 2010 17:49:59 +0000 (10:49 -0700)]
Extending the maximum length of a boot classpath.
Running dalvikvm on a simulator causes path lengths to grow longer
because '/system' is prefixed with the full path to the android build
tree.
Dan Bornstein [Fri, 25 Jun 2010 17:05:20 +0000 (10:05 -0700)]
Refix whitespace removal that I clobbered in my recent merge.
Change-Id: I99048fc98cd7145f18744e1a4fc1a3317dc7c064
Dan Bornstein [Fri, 25 Jun 2010 16:55:52 +0000 (09:55 -0700)]
resolved conflicts for merge of
4728a4c3 to dalvik-dev
Change-Id: Id598e32befb55cd99ccf8ff45e50a0de864b7f13
The Android Open Source Project [Fri, 25 Jun 2010 16:42:59 +0000 (09:42 -0700)]
merge from froyo-plus-aosp
Change-Id: If7ea7cb45a74560ef46f771e25b75a1c03417f27
Barry Hayes [Wed, 23 Jun 2010 18:38:52 +0000 (11:38 -0700)]
Use the queueNext field of java.lang.ref.Reference for lists of
Reference objects in the GC, rather than the vmData field.
Change-Id: I94e23fcce5cc38f4dcdd17c07b8c30b47f2f9d0e
Elliott Hughes [Fri, 25 Jun 2010 15:06:32 +0000 (08:06 -0700)]
resolved conflicts for merge of
de43dd8c to dalvik-dev
Change-Id: Id5c74939c8f1bd6441ca8a49c452ba972068696e
Dan Bornstein [Fri, 25 Jun 2010 01:32:44 +0000 (18:32 -0700)]
am
a0d4e429: am
74826481: Merge "Updated the warning about old-style inner class metadata to reflect the current understanding of the situation." into gingerbread
Merge commit '
a0d4e42958ed95315f5c949db99c9a11db3ba120'
* commit '
a0d4e42958ed95315f5c949db99c9a11db3ba120':
Updated the warning about old-style inner class metadata to reflect
Dan Bornstein [Fri, 25 Jun 2010 01:31:03 +0000 (18:31 -0700)]
am
74826481: Merge "Updated the warning about old-style inner class metadata to reflect the current understanding of the situation." into gingerbread
Merge commit '
7482648141995c52f5e3aeddb3b44092923cb33a' into gingerbread-plus-aosp
* commit '
7482648141995c52f5e3aeddb3b44092923cb33a':
Updated the warning about old-style inner class metadata to reflect
Dan Bornstein [Fri, 25 Jun 2010 01:29:18 +0000 (18:29 -0700)]
Merge "Updated the warning about old-style inner class metadata to reflect the current understanding of the situation." into gingerbread
Dan Bornstein [Thu, 24 Jun 2010 21:51:17 +0000 (14:51 -0700)]
Updated the warning about old-style inner class metadata to reflect
the current understanding of the situation.
The change affects diagnostic output but doesn't change anything about
dex file production, per se. I also added a new test each for dx and
the vm, checking that the warning gets emitted and demonstrating the
effect (respectively).
Though it's a pretty minor change, I bumped up the version number of dx.
Added bonus: Wrapped a couple of too-long lines that I happened to notice.
Bug:
2171430
Change-Id: If6afa4ba88dca9b0e6d88603e0a5fc2e36358115
Carl Shapiro [Fri, 25 Jun 2010 01:09:23 +0000 (18:09 -0700)]
Merge "Fix a VM abort caused by the HeapWorker thread." into dalvik-dev
Carl Shapiro [Fri, 25 Jun 2010 00:44:29 +0000 (17:44 -0700)]
Fix a VM abort caused by the HeapWorker thread.
After calling finalize method the HeapWorker needs to reacquire the
heapWorkerLock. If the garbage collector is running, this resource
may not be released before the VM decides to suspend the HeapWorker
thread. By transitioning the VMWAIT state in these situations, the
HeapWorker will not otherwise induce an abort.
Change-Id: I70ee47a9793d3d2f7fb24b1586aa43ce500a8767
Elliott Hughes [Fri, 25 Jun 2010 00:16:46 +0000 (17:16 -0700)]
am
9974cb52: am
6626af93: Merge "Remove the 060-reflection-security test." into gingerbread
Merge commit '
9974cb521a01426c90e0c6836832eb2b33d7512b'
* commit '
9974cb521a01426c90e0c6836832eb2b33d7512b':
Remove the 060-reflection-security test.
Carl Shapiro [Thu, 24 Jun 2010 23:28:08 +0000 (16:28 -0700)]
Merge "Remove LOGVV messages." into dalvik-dev
Elliott Hughes [Thu, 24 Jun 2010 23:23:45 +0000 (16:23 -0700)]
am
6626af93: Merge "Remove the 060-reflection-security test." into gingerbread
Merge commit '
6626af931dad11d2c2035cbd1f2e1593fb3097b8' into gingerbread-plus-aosp
* commit '
6626af931dad11d2c2035cbd1f2e1593fb3097b8':
Remove the 060-reflection-security test.
Elliott Hughes [Thu, 24 Jun 2010 23:21:56 +0000 (16:21 -0700)]
Merge "Remove the 060-reflection-security test." into gingerbread
Carl Shapiro [Thu, 24 Jun 2010 23:16:47 +0000 (16:16 -0700)]
Remove LOGVV messages.
Change-Id: I0af0710e28b644cc3b9e61501eaca872bea5d8b9
Elliott Hughes [Thu, 24 Jun 2010 23:11:03 +0000 (16:11 -0700)]
Remove the 060-reflection-security test.
Bug:
2796887
Change-Id: I30879565343ea00db042a9608c5bac27cef66bb3
Carl Shapiro [Thu, 24 Jun 2010 19:36:38 +0000 (12:36 -0700)]
Remove a reference to the unlinked class in identityHashCode.
Change-Id: I79d011457b149ae04d4d1f16c467afded959be73
Bill Buzbee [Wed, 23 Jun 2010 23:36:50 +0000 (16:36 -0700)]
Jit: Fix for
2793725 SIGSEGV in JIT code cache
r8 was missing from the handler clobber set, and is stepped on by
the handlers for inline string compareto and indexof.
Change-Id: I6e5d6f46b595d638863b27edcc8718157a3e411f
Carl Shapiro [Wed, 23 Jun 2010 21:28:14 +0000 (14:28 -0700)]
Merge "Make the copying collector build again." into dalvik-dev
Carl Shapiro [Wed, 23 Jun 2010 21:25:07 +0000 (14:25 -0700)]
Make the copying collector build again.
Change-Id: I248babd7062d9c1dccabdcfcd81b5b06e06b314e
The Android Open Source Project [Tue, 22 Jun 2010 21:28:00 +0000 (14:28 -0700)]
merge from open-source master
Change-Id: Ie085bcbe5ce7d055b4c3b3f82d68fed62b4793f7
Andy McFadden [Tue, 22 Jun 2010 20:21:00 +0000 (13:21 -0700)]
Merge "dalvik: use pthread_setname_np() to set the name of the current thread"
Andy McFadden [Tue, 22 Jun 2010 18:01:20 +0000 (11:01 -0700)]
Relocate OpCodeNames.[ch].
The JIT was pulling it out of the dexdump directory, which is Just
Plain Wrong[tm]. Now it's part of libdex, for all to enjoy.
Change-Id: Ic1e4c981eb2d70ccc3c841ceb5a54f4f77af2008
Andy McFadden [Tue, 22 Jun 2010 17:34:21 +0000 (10:34 -0700)]
Fix dexdump.
It was printing bad output or crashing on the -wide-volatile instructions
generated by "dx". This inverts the "else" clause, treating new-array
and instance-of as the special case.
Change-Id: I1717508d2e41cdc9a2396e2eaa215d7f9f8ac21b
Barry Hayes [Fri, 11 Jun 2010 23:12:47 +0000 (16:12 -0700)]
Put wrappers on all stores of Object pointers into heap Objects.
Also:
Changed ++ loops to [i] loops where I'm touching.
Added some asserts.
Added dvmHeapSourceContainsAddress
Added dvmIsValidObjectAddress
Change-Id: I6586688246064aecabb1e22e1dca276fecee7795
Andy McFadden [Mon, 21 Jun 2010 20:50:13 +0000 (13:50 -0700)]
Merge "Fix ENFORCE_READ_ONLY mode for LinearAlloc." into dalvik-dev
Andy McFadden [Mon, 21 Jun 2010 19:58:20 +0000 (12:58 -0700)]
Fix ENFORCE_READ_ONLY mode for LinearAlloc.
Just need to wrap a memset call that zeroes out the interface indices
before the class is marked GC-able.
Change-Id: I734985f668d224f674d95faa4854db4d4978a4d0
Carl Shapiro [Mon, 21 Jun 2010 19:51:25 +0000 (12:51 -0700)]
Merge "Clean-up the use of barriers in the synchronization code." into dalvik-dev
Andy McFadden [Mon, 21 Jun 2010 18:14:49 +0000 (11:14 -0700)]
Merge "Fiddle with SMP_DMB." into dalvik-dev
The Android Open Source Project [Mon, 21 Jun 2010 18:08:33 +0000 (11:08 -0700)]
am
65c3e699: am
577198ac: merge from froyo-plus-aosp
Merge commit '
65c3e6993c33115931d8a2e27010d14f9bc0d42c' into dalvik-dev
* commit '
65c3e6993c33115931d8a2e27010d14f9bc0d42c':
New implementation for java.lang.Runtime's availableProcessors().
Carl Shapiro [Mon, 21 Jun 2010 18:04:33 +0000 (11:04 -0700)]
Clean-up the use of barriers in the synchronization code.
* Use a releasing store to update the lockword when inflating.
* Remove the barrier following the interrupted flag update. The
mutex release that follows should have the same effect.
Change-Id: I9c8b31769e5767a9748d01278cf01be9678de2a5
The Android Open Source Project [Mon, 21 Jun 2010 18:02:29 +0000 (11:02 -0700)]
am
577198ac: merge from froyo-plus-aosp
Merge commit '
577198ac632e57ac327555443cb0185d45ed3250'
* commit '
577198ac632e57ac327555443cb0185d45ed3250':
New implementation for java.lang.Runtime's availableProcessors().