OSDN Git Service
Barry Hayes [Wed, 21 Jul 2010 18:38:54 +0000 (11:38 -0700)]
Merge "Fixup a failing assert." into dalvik-dev
Barry Hayes [Wed, 21 Jul 2010 18:22:04 +0000 (11:22 -0700)]
Fixup a failing assert.
YET AGAIN bit by max being inclusive. Only failed occasionally, and
failures quickly restart and roll off the log. I wasn't watching
closely enough when I tested, I expect.
Change-Id: I2c8e9c0b49ffd9b575e8fa4c882bdae9c64e8304
Elliott Hughes [Wed, 21 Jul 2010 18:08:14 +0000 (11:08 -0700)]
Merge "Be less misleading when something goes wrong early." into dalvik-dev
Elliott Hughes [Wed, 21 Jul 2010 00:23:06 +0000 (17:23 -0700)]
Be less misleading when something goes wrong early.
In the recent icu4c breakage, we misinterpreted the "thrown during ...<clinit>"
to mean that <clinit> was the method that threw. This patch makes the wording
less easy to misinterpret.
The other thing that was confusing was the lack of a stack trace. It turns out
that dalvikvm tried to output a stack trace when the thread died, but it was
using LOGI. We'd have seen that on the device (which logs everything), but it
was filtered out by the host build's liblog. (Our ANDROID_LOG_TAGS was set to
"*:w".)
Change-Id: Ib46b3c7addc75aed103a3eb9fa010234f4444fbe
Barry Hayes [Wed, 21 Jul 2010 01:23:42 +0000 (18:23 -0700)]
Merge "When aliasing a bitmap, use smallest available limit." into dalvik-dev
Barry Hayes [Thu, 15 Jul 2010 15:58:10 +0000 (08:58 -0700)]
When aliasing a bitmap, use smallest available limit.
dvmHeapSourceGetObjectBitmaps was using each Heap's allocation limit
to set the max for the bitmap. This causes the HeapBitmap iterators to
do unnecessary work, over parts of the HeapBitmap which could be known
to be all zeros.
Making the max for a HeapBitmap also take into account the liveBits's
max will inform the HeapBitmap iterators that these regions are all
zeros. This will only change the calculation for the active allocation
Heap; but when there are two Heaps, the Zygote Heap is expected to be
pretty well packed, with not a lot of extra words of zeroes in the
HeapBitmap.
Also fixes a defect in aliasBitmap's calculation of bitsLen.
See http://b/issue?id=
2857152
Change-Id: Iacb6bc400318702d760a774c6ca5eab67b8bdfd3
Barry Hayes [Tue, 20 Jul 2010 22:18:37 +0000 (15:18 -0700)]
Merge "Port the improved 087 test back to test 086." into dalvik-dev
Andy McFadden [Tue, 20 Jul 2010 18:29:41 +0000 (11:29 -0700)]
Merge "Add class checks in AllocObject / NewObject." into dalvik-dev
Barry Hayes [Tue, 20 Jul 2010 17:44:40 +0000 (10:44 -0700)]
Merge "Remove #ifdef 0 code in removeCollectedObject." into dalvik-dev
Andy McFadden [Mon, 19 Jul 2010 22:44:56 +0000 (15:44 -0700)]
Add class checks in AllocObject / NewObject.
The JNI spec says the functions throw InstantiationException if you
pass in an abstract or interface class, and that you "must not" try to
allocate an array class with this mechanism. These are now checked.
We also forbid creation of a Class object with these calls, since
that should only be done by DefineClass.
Also, added appropriate "is class initialized" code for the A/V
variants of NewObject, which were strangely lacking them.
Change-Id: I8dde7a812265cfb16b1765695c652e98c9de0840
Barry Hayes [Tue, 20 Jul 2010 17:24:04 +0000 (10:24 -0700)]
Remove #ifdef 0 code in removeCollectedObject.
Change-Id: I095b5bdccde621da88ac9118123d82583b0230b6
Barry Hayes [Tue, 20 Jul 2010 16:46:05 +0000 (09:46 -0700)]
Port the improved 087 test back to test 086.
Change-Id: Id4dffe23fb60c4e703a0c4de0fab1a0876b2756a
Barry Hayes [Tue, 20 Jul 2010 16:42:39 +0000 (09:42 -0700)]
Merge "Add a regression test. dvmFreeClassInnards had a defect where it would SIGSEGV when a linking error tried to clean up, and then GC also tried to clean up when freeing a ClassObject." into dalvik-dev
Barry Hayes [Mon, 12 Jul 2010 18:06:42 +0000 (11:06 -0700)]
Add a regression test. dvmFreeClassInnards had a defect where it would
SIGSEGV when a linking error tried to clean up, and then GC also tried
to clean up when freeing a ClassObject.
Bug
2786413
Change-Id: Ia4c6bc9eae007a9cf65db13ddf3019ed9ac07d7f
Carl Shapiro [Mon, 19 Jul 2010 22:55:01 +0000 (15:55 -0700)]
Revert "When aliasing a bitmap, use smallest available limit."
This did not correctly compute the intended limit.
This reverts commit
740cd296284e682d9d92bd638d266efccf817bbe.
Andy McFadden [Mon, 19 Jul 2010 22:44:27 +0000 (15:44 -0700)]
Merge "Implement JDWP ArrayType.NewInstance." into dalvik-dev
Andy McFadden [Mon, 19 Jul 2010 20:51:36 +0000 (13:51 -0700)]
Implement JDWP ArrayType.NewInstance.
With this, you can go into the Eclipse "Display" view and evaluate
"new byte[5]" to get "(byte[]) [0, 0, 0, 0, 0]".
Change-Id: Id110c5701a9de12222760be6623585b5f7e28023
Andy McFadden [Mon, 19 Jul 2010 15:58:36 +0000 (08:58 -0700)]
am
b037a464: Don\'t do heap dump on SIGUSR1.
Merge commit '
b037a464512c0721bdca969ae19cce3d4b17b083' into dalvik-dev
* commit '
b037a464512c0721bdca969ae19cce3d4b17b083':
Don't do heap dump on SIGUSR1.
Andy McFadden [Fri, 16 Jul 2010 00:20:24 +0000 (17:20 -0700)]
Implement JNI UnregisterNatives.
This function is of limited use, but one of our partners found a need
for it, so it's finally getting implemented. It clears all JNI native
method bindings in a given class.
It turns out there are some interesting potential races which can be
avoided by treading lightly. The utility function that updates the
Method struct has been modified appropriately.
(There's a race on ARM SMP in the original implementation, in which
we could still observe "insns" as NULL after nativeFunc is pointing at
the JNI bridge. Handled in this change with an explicit full barrier,
which is overkill. We can make it better as part of the general
barrier-removal pass in bug
2781972 -- really wants an acquiring load
on nativeFunc, though that's a waste for internal native calls.)
Also, stifled an unnecessary warning about redefining a native method
implementation (which is explicitly allowed). Limited the scope of
an inappropriate "const" declaration.
Bug
2697885.
Change-Id: Ie406e25de3f77d00fe3e9130b406abcb45c3d60e
Andy McFadden [Fri, 16 Jul 2010 18:07:58 +0000 (11:07 -0700)]
Don't do heap dump on SIGUSR1.
We still do the GC, but without the HPROF heap dump.
Change-Id: I004a65b9571667dd320dfabec1441d0fc8b9970a
Elliott Hughes [Thu, 15 Jul 2010 23:24:30 +0000 (16:24 -0700)]
Merge "Tracing for developers of native methods." into dalvik-dev
Elliott Hughes [Wed, 7 Jul 2010 21:47:25 +0000 (14:47 -0700)]
Tracing for developers of native methods.
The existing -verbose:jni is mainly useful for VM developers hacking on the JNI
implementation; this is intended to replace the ad hoc logging developers of
native methods need to write.
Use "-Xint:portable -Xjnitrace:ClassNameSubstring" on the command line. To
trace all native methods (mainly useful for testing the tracing), use
"-Xjnitrace:"; to trace just methods in java.util.regex.Matcher, use
"-Xjnitrace:Matcher" or "-Xjnitrace:Ljava/util/regex/Matcher;" or whatever.
To trace all the methods in Matcher and Pattern, you have to use something
like "-Xjnitrace:java/util/regex/". There's no facility for tracing an
individual method or group of methods because I haven't needed such a thing.
Here's a basic example:
-> Ljava/nio/charset/Charsets;.toUtf8Bytes([CII)[B (0x400474b8, 0, 5)
<- Ljava/nio/charset/Charsets;.toUtf8Bytes([CII)[B returned 0x40047548
Here's an example of a non-static native method:
-> Lorg/apache/harmony/luni/platform/OSFileSystem;.writeImpl(I[BII)J this=0x40012e78 (1, 0x400476d0, 0, 5)
<- Lorg/apache/harmony/luni/platform/OSFileSystem;.writeImpl(I[BII)J returned 5
Here's an interesting example showing another native method being called, and
an exception being thrown by a native method:
-> Ljava/lang/VMClassLoader;.loadClass(Ljava/lang/String;Z)Ljava/lang/Class; (0x400466b8, false)
-> Ljava/lang/Throwable;.nativeFillInStackTrace()Ljava/lang/Object; ()
<- Ljava/lang/Throwable;.nativeFillInStackTrace()Ljava/lang/Object; returned 0x400467c8
<- Ljava/lang/VMClassLoader;.loadClass(Ljava/lang/String;Z)Ljava/lang/Class; threw Ljava/lang/ClassNotFoundException;
(This functionality needs to be enabled at compile time. A later patch will
address that.)
Change-Id: I6da8930bd4b4f228e07b05cc59a3aea331c5cee1
Brian Carlstrom [Thu, 15 Jul 2010 22:10:32 +0000 (15:10 -0700)]
Carl Shapiro [Thu, 15 Jul 2010 19:24:51 +0000 (12:24 -0700)]
Merge "Fix a crash during the VM shutdown." into dalvik-dev
Jesse Wilson [Thu, 15 Jul 2010 19:02:02 +0000 (12:02 -0700)]
Merge "Caching the class name on the Java heap." into dalvik-dev
Joe Onorato [Thu, 15 Jul 2010 18:38:42 +0000 (11:38 -0700)]
am
58b0f67f: am
1c3da619: am
0f0e6f10: Merge "The ICU data is no longer compiled directly into the shared library." into gingerbread
Merge commit '
58b0f67fe22032f55bf779e2f828b445a475bfd3' into dalvik-dev
* commit '
58b0f67fe22032f55bf779e2f828b445a475bfd3':
The ICU data is no longer compiled directly into the shared library.
Joe Onorato [Thu, 15 Jul 2010 18:31:01 +0000 (11:31 -0700)]
am
1c3da619: am
0f0e6f10: Merge "The ICU data is no longer compiled directly into the shared library." into gingerbread
Merge commit '
1c3da6197c677339cfdd41a948a5f79f804d6e4e'
* commit '
1c3da6197c677339cfdd41a948a5f79f804d6e4e':
The ICU data is no longer compiled directly into the shared library.
Carl Shapiro [Thu, 15 Jul 2010 18:26:26 +0000 (11:26 -0700)]
Fix a crash during the VM shutdown.
The routine to shutdown the threads in a heap source was not checking
to see whether a heap source had been created. This caused a crash
when VM requested a shutdown before it had fully initialized.
Change-Id: Iea0c7e9ed86ede881986a6576d9f973b2ec8c36d
Joe Onorato [Thu, 15 Jul 2010 18:12:43 +0000 (11:12 -0700)]
am
0f0e6f10: Merge "The ICU data is no longer compiled directly into the shared library." into gingerbread
Merge commit '
0f0e6f10f9029a958683b0830d47b21bc993a067' into gingerbread-plus-aosp
* commit '
0f0e6f10f9029a958683b0830d47b21bc993a067':
The ICU data is no longer compiled directly into the shared library.
Joe Onorato [Thu, 15 Jul 2010 18:08:00 +0000 (11:08 -0700)]
Merge "The ICU data is no longer compiled directly into the shared library." into gingerbread
Andy McFadden [Thu, 15 Jul 2010 17:45:51 +0000 (10:45 -0700)]
Merge "Describe dalvik.vm.extra-opts." into dalvik-dev
Andy McFadden [Thu, 15 Jul 2010 17:30:23 +0000 (10:30 -0700)]
Describe dalvik.vm.extra-opts.
Goes with bug
2838629.
Change-Id: I754af767bf8173a674d84428a3ce11cd337b19ae
Barry Hayes [Wed, 14 Jul 2010 14:07:54 +0000 (07:07 -0700)]
Make dvmVerifyCardTable more resiliant, and move invocation to start
and end of GC.
Also removes the dependence on HeapBitmap from the .h file.
Change-Id: I2132d0dedfb8fbd07012563d116e808d444038ab
Barry Hayes [Wed, 14 Jul 2010 15:13:18 +0000 (08:13 -0700)]
Make dvmCardTableStartup be more independant of HeapSource startup.
Also added a call to dvmCardTableShutdown. Also removed the dependency
on GcHeap from CardTable.h.
Change-Id: Icf0293572371cc8a30b55672816fdd75a151e82c
Jesse Wilson [Thu, 15 Jul 2010 01:40:51 +0000 (18:40 -0700)]
Caching the class name on the Java heap.
The native call was a bottleneck in some code I was writing.
See change 57637 for the corresponding libcore change.
https://android-git.corp.google.com/g/#change,57637
Andy McFadden [Wed, 14 Jul 2010 23:02:45 +0000 (16:02 -0700)]
am
23280a25: Merge "Update heap profiling docs."
Merge commit '
23280a2598d72733223c69a6ff3ab9dd5005c751' into dalvik-dev
* commit '
23280a2598d72733223c69a6ff3ab9dd5005c751':
Update heap profiling docs.
Andy McFadden [Wed, 14 Jul 2010 22:56:05 +0000 (15:56 -0700)]
Merge "Update heap profiling docs."
Andy McFadden [Wed, 14 Jul 2010 21:48:20 +0000 (14:48 -0700)]
Update heap profiling docs.
Explain that "kill -10" is being removed as a heap-dump mechanism, and
describe the new "am dumpheap" command.
Change-Id: I83ac6cb5a7624d006001cc5404689bfe88b44fdd
Barry Hayes [Wed, 14 Jul 2010 18:43:04 +0000 (11:43 -0700)]
Merge "Revert "Fix the bitsLen calculation in aliasBitmap."" into dalvik-dev
The Android Open Source Project [Wed, 14 Jul 2010 18:42:40 +0000 (11:42 -0700)]
am
c596465b: am
87e2b990: am
3f4f8ad0: am
98c2591a: (-s ours) merge from open-source froyo
Merge commit '
c596465b1a2bf0afe723fad139164b6aaee184da' into dalvik-dev
* commit '
c596465b1a2bf0afe723fad139164b6aaee184da':
Add/Remove Some @KnownFailure Annotations
The Android Open Source Project [Wed, 14 Jul 2010 18:34:18 +0000 (11:34 -0700)]
am
87e2b990: am
3f4f8ad0: am
98c2591a: (-s ours) merge from open-source froyo
Merge commit '
87e2b990f7eb59588970399d85e4bcda67dba76f'
* commit '
87e2b990f7eb59588970399d85e4bcda67dba76f':
Add/Remove Some @KnownFailure Annotations
The Android Open Source Project [Wed, 14 Jul 2010 18:32:04 +0000 (11:32 -0700)]
am
3f4f8ad0: am
98c2591a: (-s ours) merge from open-source froyo
Merge commit '
3f4f8ad0ff9a603419b66d6672cc00bb69b35d78' into gingerbread-plus-aosp
* commit '
3f4f8ad0ff9a603419b66d6672cc00bb69b35d78':
Add/Remove Some @KnownFailure Annotations
The Android Open Source Project [Wed, 14 Jul 2010 18:29:03 +0000 (11:29 -0700)]
am
98c2591a: (-s ours) merge from open-source froyo
Merge commit '
98c2591a3de16682c957edc0d4fd3d10aacb3cb9' into gingerbread
* commit '
98c2591a3de16682c957edc0d4fd3d10aacb3cb9':
Add/Remove Some @KnownFailure Annotations
buzbee [Wed, 14 Jul 2010 18:09:56 +0000 (11:09 -0700)]
Merge "Interpreter & JIT support for write barriers" into dalvik-dev
Barry Hayes [Wed, 14 Jul 2010 18:08:47 +0000 (11:08 -0700)]
Revert "Fix the bitsLen calculation in aliasBitmap."
This reverts commit
87a48d25f4451824261153bfdde9dc4c4e51cbb2.
Barry Hayes [Wed, 14 Jul 2010 13:16:08 +0000 (06:16 -0700)]
Merge "Fix the bitsLen calculation in aliasBitmap." into dalvik-dev
Carl Shapiro [Wed, 14 Jul 2010 05:26:49 +0000 (22:26 -0700)]
Merge "Make the visitor routines inlined." into dalvik-dev
Carl Shapiro [Wed, 14 Jul 2010 00:36:41 +0000 (17:36 -0700)]
Make the visitor routines inlined.
The chanage also removes the verbose logging from the visitor.
Change-Id: I096dbe6d5fe2846ea363a9402e8c2b46d23f1302
Carl Shapiro [Wed, 14 Jul 2010 04:38:12 +0000 (21:38 -0700)]
Merge "Use the dvmAllocRegion instead of ashmem and mmap." into dalvik-dev
Joe Onorato [Wed, 14 Jul 2010 02:08:08 +0000 (19:08 -0700)]
The ICU data is no longer compiled directly into the shared library.
Change-Id: Ief1aa1c5f6da39f4d94cb68b285d8e02cc10b9ac
Carl Shapiro [Wed, 14 Jul 2010 01:28:13 +0000 (18:28 -0700)]
Use the dvmAllocRegion instead of ashmem and mmap.
Also clean-up an uneeded include of ashmem.h from a similar commit in
the past.
Change-Id: Id86b89e72031406cfd2bf3d3a97f2d2327e090b6
Barry Hayes [Tue, 13 Jul 2010 23:49:19 +0000 (16:49 -0700)]
Fix the bitsLen calculation in aliasBitmap.
Since the max in inclusive, not exclusive, this was making the bits
appear too short. HeapBitmap's walk routines were using this short
value for the finger in the final FLUSH_POINTERBUF call. That caused
scanObject to believe that it could mark objects at the top of the
heap, rather than having to push them on the maek stack. But, alas, as
we have noted, it is the final FLUSH_POINTERBUF.
Change-Id: Ie562defc3c2e5304cf4c96026447359b3f4fcb59
The Android Open Source Project [Tue, 13 Jul 2010 22:27:19 +0000 (15:27 -0700)]
merge from open-source froyo
Change-Id: Ia703f40fe40ea86791db8090dc821f2ab0ffdd4d
Barry Hayes [Tue, 13 Jul 2010 22:18:02 +0000 (15:18 -0700)]
Merge "Add a regression test for ClassLoader.loadClass() returning null." into dalvik-dev
Carl Shapiro [Tue, 13 Jul 2010 21:45:21 +0000 (14:45 -0700)]
Merge "Remove redundant "#ifndef NDEBUG" guarding asserts." into dalvik-dev
Barry Hayes [Mon, 12 Jul 2010 17:24:11 +0000 (10:24 -0700)]
Add a regression test for ClassLoader.loadClass() returning null.
Bug
2817346.
Change-Id: Ifdb5e08ed428f10323dd413462e6efe6a4761d2c
buzbee [Mon, 12 Jul 2010 19:59:22 +0000 (12:59 -0700)]
Interpreter & JIT support for write barriers
In this iteration, cards are marked on either the store address or
the object head (whichever leads to faster code). In all cases,
though, card marks are deferred until after the associated store
has completed.
Change-Id: I633d6e8c3bebdb80bde92efb4fa6fc7cc84f60fc
Andy McFadden [Tue, 13 Jul 2010 19:27:07 +0000 (12:27 -0700)]
am
4b851a75: Allow heap dump requests with a FileDescriptor arg.
Merge commit '
4b851a75f7712086a9fc4427f68c99b83725f37d' into dalvik-dev
* commit '
4b851a75f7712086a9fc4427f68c99b83725f37d':
Allow heap dump requests with a FileDescriptor arg.
Andy McFadden [Fri, 9 Jul 2010 23:50:05 +0000 (16:50 -0700)]
Allow heap dump requests with a FileDescriptor arg.
Part of a larger change to allow "am" to initiate hprof heap dumps.
The original implementation wrote data to a temp file, because we
compute the second part first while doing GC work. Now all paths
work like DDMS, writing all data to a memstream and then copying it
out to a file at the very end.
Also, fix a potential fd leak on failure in the profiling code.
Bug
2759474.
Change-Id: I0f838cbd9948a23088f08463c3008be7198d76e7
Carl Shapiro [Tue, 13 Jul 2010 02:48:53 +0000 (19:48 -0700)]
Remove redundant "#ifndef NDEBUG" guarding asserts.
Change-Id: Iaa4687cbaaa1eac59cf0b80afb57b3ba708ece09
Carl Shapiro [Tue, 13 Jul 2010 02:35:58 +0000 (19:35 -0700)]
Merge "Use "long" instead of the more verbose but equivalent "long int"." into dalvik-dev
Carl Shapiro [Tue, 13 Jul 2010 00:51:40 +0000 (17:51 -0700)]
Remove a stray log statement.
Change-Id: I4c4c6111cc67480377374ee3c10b729cc93622f9
Carl Shapiro [Tue, 13 Jul 2010 00:45:51 +0000 (17:45 -0700)]
Use "long" instead of the more verbose but equivalent "long int".
Change-Id: I06f87c0f8314baeccac6e96e47ad749ff18a065c
Carl Shapiro [Tue, 13 Jul 2010 00:04:38 +0000 (17:04 -0700)]
Merge "Simplify heap bitmap allocation." into dalvik-dev
Carl Shapiro [Mon, 12 Jul 2010 23:09:54 +0000 (16:09 -0700)]
Simplify heap bitmap allocation.
Rather than use ashmem and mmap directly, we now call out to a common
abstraction which does both. A name is now required. This should go
unnoticed as all callers provided a name anyway.
Change-Id: I3d1d613ddd62f218fb17a583dc85de97c33c96bc
Carl Shapiro [Mon, 12 Jul 2010 22:44:08 +0000 (15:44 -0700)]
Merge "Minor clean-ups of the reference processing code." into dalvik-dev
Brian Muramatsu [Mon, 12 Jul 2010 22:17:47 +0000 (15:17 -0700)]
Add/Remove Some @KnownFailure Annotations
Bug
2639444 2564250 2639393
Remove the @KnownFailure annotations form tests now passing in
Froyo for Nexus One using the CTS test runner. Put on
@KnownFailure annotations for those that are failing but passing
with the run-core-tests test runner.
MultiSocketTest is an exception that doesn't seem to make sense,
and fails in both runners.
Change-Id: Id8eb6b5d6f2b04b77434411f2b04c56cd61acf85
Barry Hayes [Mon, 12 Jul 2010 21:23:31 +0000 (14:23 -0700)]
Merge "Make the write barrier calls in ObjectInlines conditional; if the value being stored is NULL, no write barrier call is needed." into dalvik-dev
Carl Shapiro [Mon, 12 Jul 2010 21:22:26 +0000 (14:22 -0700)]
Merge "Make concurrent mark-and-sweep the default." into dalvik-dev
Carl Shapiro [Mon, 12 Jul 2010 21:04:42 +0000 (14:04 -0700)]
Make concurrent mark-and-sweep the default.
Change-Id: Ia889717a6889f86d20ca092bcea249048f7d2121
Carl Shapiro [Mon, 12 Jul 2010 21:02:28 +0000 (14:02 -0700)]
Minor clean-ups of the reference processing code.
* Eliminate two dead stores to a pendingNextOffset variable. This
value is only needed in the abstractions that delaying, enqueue and
dequeue of references.
* Clean-up the comment that preceeds the reference list walking. This
comment was originally copied from the code that preserves soft
references. That routine walks the list, but the clearing code
actually unlinks the list.
* Remove the the dirtyObjectVisitor. This does the exact same thing
as the existing scanObject code.
Change-Id: I20b68e52e4147aa602dd317392f68809ba4d7c63
Barry Hayes [Mon, 12 Jul 2010 16:52:20 +0000 (09:52 -0700)]
Move the biasedCardTableBase out of the non-public GcHeap structure,
and back to DvmGlobals where it can be found. Create dvmIsValidCard to
access the values hidden in the GcHeap.
This is a half-step to inlining dvmMarkCard and dvmCardFromAddr.
Change-Id: I50158915802d7f08ddadb60ca6907afd279df2a8
Barry Hayes [Fri, 9 Jul 2010 15:50:19 +0000 (08:50 -0700)]
Make the write barrier calls in ObjectInlines conditional; if the
value being stored is NULL, no write barrier call is needed.
Change-Id: I608f9706c233717b4fa0f79f78f152a2a360ee78
Carl Shapiro [Sat, 10 Jul 2010 01:05:52 +0000 (18:05 -0700)]
Merge "Remove a mostly obsolete comment and fix some formatting." into dalvik-dev
Carl Shapiro [Sat, 10 Jul 2010 00:55:41 +0000 (17:55 -0700)]
Remove a mostly obsolete comment and fix some formatting.
Change-Id: I74dce856323136e5d2703bd1c753f5a87ba575b9
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