95adf1ff81dec324746bef58ba8c45dc1c8f3b50 |
|
22-Aug-2013 |
Mathieu Chartier <mathieuc@google.com> |
Fix native allocation tracking on Dalvik. Fixed issue where we had inverted logic when checking for pending exceptions. Changed the logic to not update the native allocation watermarks after concurrent GC since the finalizers may not have been run at this point. Copied over the test from ART for ensuring that it is working. Bug: 10444866 Change-Id: Ie26170f9c4703f11e993233cdc9c5f46396fca84
|
3086ab6a9c0859af3a85d5df73d0aecc2c47ca89 |
|
16-Jul-2013 |
Mathieu Chartier <mathieuc@google.com> |
Backport native allocation tracking. From: https://googleplex-android-review.googlesource.com/#/c/328818/ Change-Id: I5a930e629c5a2062f01f870b4a44dcd98cb4ffe9
|
9487ab7fa22fc53512b344eeddc6dc866492a880 |
|
11-Jun-2012 |
Elliott Hughes <enh@google.com> |
Revert " Trim after explicit gc." This reverts commit ea4c6e57a48e08eacbf08520c64133175e7d5da0
|
ea4c6e57a48e08eacbf08520c64133175e7d5da0 |
|
11-May-2012 |
SangWook Han <swhan@nemustech.com> |
Trim after explicit gc. On Gingerbread, dvmHeapSourceTrim() is called 5 seconds after every kind of GC. Current AOSP do trim only for concurrent GC. That makes OOM killer too busy. At least explicit GC need trim and in case of explicit GC, there are no need to delay 5 seconds before trim. Change-Id: I8fde8f773398bf20c674cfa6f686d7d745d56492
|
c1a4ab9c313d8a3d12007f2dbef7b5a6fa4ac2ef |
|
06-Jan-2012 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGE See https://android-git.corp.google.com/g/#/c/157220 Also fix an occurrence of LOGW missed in an earlier change. Bug: 5449033 Change-Id: I2e3b23839e6dcd09015d6402280e9300c75e3406
|
e8e1ddccd616e8226b7cc1e4e9fdb327429249e8 |
|
06-Jan-2012 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGE See https://android-git.corp.google.com/g/157065 Bug: 5449033 Change-Id: Ia5d301248024df26c2a29dabdfe738e39ec87c82
|
21fefbaa3874c42f8a017c4794add2d7c337643a |
|
14-Oct-2011 |
Elliott Hughes <enh@google.com> |
Avoid deadlock. dvmIsHeapAddress is the pointer validity checker for use outside the GC. If it doesn't take the heap lock, it risks looking at data structures that are changing under its feet. If it does take the heap lock, it risks deadlock between a thread doing an explicit GC and the signal catcher trying to dump threads (causing the GC thread to be suspended while holding the heap lock). Calling back into managed code while holding the heap lock and with other threads resumed sounds like an inherently bad idea to me, but that's a battle for another day. With this change, we can handle SIGQUIT while we're in ReferenceQueue.add as a result of an explicit GC in a system doing concurrent collections, so the only known problem is fixed. Bug: 5425802 Change-Id: I42d434d5ea3ffbcb77a4c544b81b08a4c7364a16
|
da866eadb221236c2d46b790489a15ac829bd61e |
|
10-Aug-2011 |
Elliott Hughes <enh@google.com> |
Take the heap lock in dvmIsHeapAddress. Bug: 5049447 Change-Id: I9df6e4116efa44088d37ac0ff4455a7876535e1e
|
e58a9b5d443cd3fcc22abc887cf0739a4b6bc145 |
|
21-Jun-2011 |
Jesse Wilson <jessewilson@google.com> |
Add isDebuggerActive API for the finalizer watchdog. Change-Id: Ib0afcd15327c0a3dd8c565036a8f010e318adc9e http://b/4144865
|
0d92a4072c00434e95a03642a4944acf81a81cc3 |
|
08-Jun-2011 |
Carl Shapiro <cshapiro@google.com> |
Favor Object* over void* for the heap bitmap interfaces. Change-Id: I615dbff3e81a1128dc3ba43d6d426c370ae3abcf
|
60fc806b679a3655c228b4093058c59941a49cfe |
|
26-May-2011 |
Dan Bornstein <danfuzz@android.com> |
Further conservation of newlines. Friends don't let friends end LOG() strings with newlines. Change-Id: I5a18c766c90c4ab5f03caa6acd601d34d91beb00
|
c7ecb9b57d4f7eaeeaedbd7955c6782f8b48ec6f |
|
11-May-2011 |
Carl Shapiro <cshapiro@google.com> |
Explicitly initialize a condition variable in the VM globals. Change-Id: I3192d957ebace59a3b8f8330591f05d403280d1f
|
dc9e44cc0af797679822484d88ef76bff15ffc98 |
|
06-May-2011 |
Carl Shapiro <cshapiro@google.com> |
Make interned strings non-movable. At present objects referenced from dex files must have stable reference values. With this change, only non-moving strings are interned. If a user interns a movable string a non-moving copy is made and the copy is added to the intern table. As part of this change, the internal string hash code access routine will update the hash code slot of a string object. In addition, StringObject has been made a subclass of Object eliminating various down-casts that would otherwise be explicitly required. Change-Id: I6b015b972aac44948470c0034ad17e5eef456aeb
|
71ae36cdf140e2dc06dd5b7727fdc625e4e94e08 |
|
28-Apr-2011 |
Carl Shapiro <cshapiro@google.com> |
Refactor the garbage collection class initialization. Change-Id: I977ee5045010a846098944d3e8048893ac550533
|
50e5fd5984c9b0a6f0927ed5ddf13bde40e338c7 |
|
27-Apr-2011 |
Carl Shapiro <cshapiro@google.com> |
Use C++ linkage in GC headers and remove unneeded typedefs. Some interfaces in Alloc.h had to be left with C linkage as they are referenced by the interpreter assembler code. That dependency will be addressed in a future commit. Change-Id: I6b2097a2139ddf6b4b13e592710e241442e08488
|
122dac5b92c649b5d3182b163d7fce35e8c69d76 |
|
21-Apr-2011 |
Carl Shapiro <cshapiro@google.com> |
Remove DVM_LOCK_INIT and DVM_LOCK_INITIAL_THIN_VALUE. The original implementation for thin locks used a magic non-zero value to encode the initial thin lock state. This magic value was kept around in DVM_LOCK_INITIAL_THIN_VALUE and stored into the lock word of newly allocated objects. A later revision to the thin locking code made the initial thin lock value be 0. That change eliminated the requirement that lock words be explicitly initialized as the allocator always returns zero-filled memory. Change-Id: I34e0b43b4c4db0f45cf7cf524e15d4a6096c1365
|
1e1433e78f560a01744e870c19c162ab88df9dc1 |
|
21-Apr-2011 |
Carl Shapiro <cshapiro@google.com> |
Remove unneeded void argument list declarations. Change-Id: Ica749f6defa890363ec531b29e25bc415dc2cbb9
|
c6d2470eec726ae0ad95e4fd2d9d7da7cb2cdcba |
|
12-Apr-2011 |
Dan Bornstein <danfuzz@android.com> |
Add a class flag CLASS_ISCLASS. This flag is only turned on for the unique class Class, and it is meant to make it possible to quickly test objects for "classiness" as well as trivially figure out if one is looking at the class Class itself. Bonus: Made a few places that directly set class->accessFlags use the prescribed macro for doing same. Change-Id: I89fce708c407b597f28ce610b778123f5dcaecf6
|
ae188c676c681e47a93ade7fdf0144099b470e03 |
|
08-Apr-2011 |
Carl Shapiro <cshapiro@google.com> |
Compile the garbage collector and heap profiler as C++. Change-Id: I25d8fa821987a3dd6d7109d07fd42dbf2fe0e589
|