History log of /art/test/098-ddmc/src/Main.java
Revision Date Author Comments
1ed11b9ad5512cf464cb1686640df53201fa5297 12-Jun-2015 Man Cao <manc@google.com> Restore DDMS recent allocation tracking's behavior

Make the allocation tracker mark recently allocated objects as roots,
so the allocation records are not swept. Because DDMS needs recent
allocation tracking records even for dead objects. This should fix
the flaky failures for 098-ddmc test, but it cannot pass GC stress
test (OOM). Re-enabled 098-ddmc for other tests.

There should be an option to not mark them as roots, when user only
needs HPROF dump with traces but not DDMS's recent allocation tracking.
Probably need to add a new JNI API function for this option.

There could be another way to keep a second list of recent allocation
records and maintain a type cache for them, so not to make the objects
roots. But it's more complex, and not sure which is better.

Also reduce memory usage for AllocRecordStackTrace objects, and change
default stack depth to 16. Rename the property that controls the stack
depth to "debug.allocTracker.maxStackDepth" so developer can change it.

Bug:20037135
Change-Id: Ic6b9ae87bdcda558be6f14ded8057e763439881c
0797e5890f0db2a95ad5be840f2999f51aeb731e 12-Jun-2015 Man Cao <manc@google.com> Skip 098-ddmc for GC stress test

And add comment about the temporary fix in 098-ddmc because of behavior
change for DDMS's getRecentAllocations().

Also fixed a buggy typo in Android.run-test.mk.

Bug: 20037135
Change-Id: Ia57e03f458d8570690616d2cc49f2ead42a96cb0
f80ebf2f23f5b8124587ed250f9d95bbeb6612c2 11-Jun-2015 Man Cao <manc@google.com> Fix buildbot failure for 098-ddmc test

The test only failed on buildbot but not on my local machine. It is
possibly caused by GC reclaiming dead objects and associated allocation
records.

More importantly, the CL 153435 changes the behavior of recent allocation
tracking for DDMS, so that it now reports allocation records of not-yet-
garbaged-collected objects. They are a superset of live objects, but not
a precise set of the most recent allocations.

Bug: 20037135
Change-Id: I200a6c8baaeb98207845049902d59efa2f4ea11e
67aea0a0b078c7f6ed780e5fafb31e9849127f79 28-Apr-2015 Jeff Hao <jeffhao@google.com> Change ddmc run-test to make new objects instead of strings.

Before, the test was creating new strings until overflowing allocations,
which was half string objects and half character arrays. Now, it
allocates all strings with the character data, which is larger than
before, causing the test to run out of memory. Allocating only objects
prevents the test from running out of memory.

Change-Id: Icf3f0fd2ae847e76a9b8d5dfb762be92de16aaa3
306db81aba41eb244a4e8299cf58ac18ae9999c7 05-Sep-2014 Brian Carlstrom <bdc@google.com> Fix numerous issues with DdmVmInternal allocation tracking

Issues addressed:
- Using without JDWP attached caused native crash.
- When buffer is full (64k entries), number of entries reported was 0.
- Disabling tracking after disabling tracking caused native crash.
- Asking for allocations after disabled caused native crash.
- Lock ordering issues between mutator lock and alloc tracker lock.

Adding 098-ddmc test to cover these cases.

Bug: 17392248

(cherry picked from commit a5815065ac0877add9c0db3605d27b4d6c426e61)

Change-Id: Ib0bc18dfcdafcc050ab9dceed3d167dd878d1d7a
f4cb036808b88fe60d71a705b2744284155cbc01 05-Sep-2014 Brian Carlstrom <bdc@google.com> Fix numerous issues with DdmVmInternal allocation tracking

Issues addressed:
- Using without JDWP attached caused native crash.
- When buffer is full (64k entries), number of entries reported was 0.
- Disabling tracking after disabling tracking caused native crash.
- Asking for allocations after disabled caused native crash.
- Lock ordering issues between mutator lock and alloc tracker lock.

Adding 098-ddmc test to cover these cases.

Bug: 17392248
Change-Id: I45c0abbfb3dd7a7421aea3bbba2ea8d05225e48b