History log of /art/test/149-suspend-all-stress/src/Main.java
Revision Date Author Comments
952e1e3710158982941fc70326e9fddc3021235d 13-Jun-2016 Mathieu Chartier <mathieuc@google.com> Support unlimited pending checkpoints

Prevents the spinning that used to happen if RunCheckpoint was called
with 3 pending checkpoints. This spinning was done when holding
thread_list_lock_ and thread_suspend_count_lock_ and could deadlock
if any of the pending checkpoints required any of these locks.

The fix is to use an overflow list instead of having a fixed limit of
3.

Changed suspend stress test to have more threads and only compare last
line since there may be libbacktrace spam like:
"+E/libbacktrace(69891): void SignalHandler(int, siginfo_t *, void *):
Timed out waiting for unwind thread to indicate it completed."

Bug: 28988206

Change-Id: I2ae611506147d5199d59a08eee0395f7fa35d448
e99f53203904c23a26e53ca1bf6a4e45814146fe 11-Jun-2016 Mathieu Chartier <mathieuc@google.com> Use ScopedObjectAccess in ThreadList::Dump

Prevent deadlocks if two different threads are calling Dump at the
same time:

Thread 1: Requests thread 2 to suspend
Thread 2: Requests thread 1 to suspend
Both threads are suspended and blocked on ScopedObjectAccess in
thread dumping.

Added to suspend all stress, reduced thread count to 4 temporarily
since this is the maximum number of simultaneous checkpoints.

Bug: 28988206

Change-Id: I9e4b8391ebad0bca0e42a03819c58c99ddba6b35
a80e2afdd34bafc3e0c445fe456daba8b3562d5e 09-Jun-2016 Mathieu Chartier <mathieuc@google.com> Add thread suspend stress

Seems to be passing, aim to catch bugs related to thread suspension.

Bug: 28988206

Change-Id: I48190900ccd7a2545c6f09cf730e995043b0d9b7