History log of /dalvik/vm/alloc/Alloc.cpp
Revision Date Author Comments
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