6650075fb831379d24cfafc3d56442e742418688 |
|
08-Apr-2015 |
Sebastien Hertz <shertz@google.com> |
JDWP: more GC safety Ensures GC safety when keeping references that may be moved by GC: - SingleStepControl: stores ArtMethod* in a GcRoot - ModBasket: stores references in a StackHandleScope Bug: 18166750 (cherry picked from commit 261bc044a3575512869586593e99e97cd8b1c321) Change-Id: I35971a901537956739d1f089d61cb4ea9dc6c93d
|
692063955ae845d8bd9fa2d22a50a1e06513bdcf |
|
07-Apr-2015 |
Sebastien Hertz <shertz@google.com> |
JDWP: fix thread_list deadlock Limits the scope of Locks::thread_list_lock_ locking in the debugger so we do not try to lock it twice when creating a JDWP id (because calling Object::IdentityHashCode may need to take the lock). Bug: 20048099 Change-Id: I305dd72ccc4d2d007d1603b0d52bcfa94b6842a7
|
ea668645e5fe84f1b097e490044f47fca5ea6bd9 |
|
23-Oct-2014 |
Sebastien Hertz <shertz@google.com> |
Make ObjectRegistry::InternalAdd GC safe Because a call to IdentityHashCode may cause GC, the object pointer may become invalid (if the object has been moved) on next uses. We now access the object through a Handle to be GC safe. Also remove unused methods. Bug: 18098424 (cherry picked from commit e2d628b5b0a1b9c29c173f3cbad3ef6cb6c24d2d) Change-Id: I4fdff54053aa947765a39adf67345b08816387e5
|
e2d628b5b0a1b9c29c173f3cbad3ef6cb6c24d2d |
|
23-Oct-2014 |
Sebastien Hertz <shertz@google.com> |
Make ObjectRegistry::InternalAdd GC safe Because a call to IdentityHashCode may cause GC, the object pointer may become invalid (if the object has been moved) on next uses. We now access the object through a Handle to be GC safe. Also remove unused methods. Bug: 18098424 Change-Id: I38fb55c3a6be62c4d98d4c94272a9cfeba327598
|
070f732bc270f6b9a579838d3418eb13b9cdf8ff |
|
09-Sep-2014 |
Sebastien Hertz <shertz@google.com> |
Fix deadlock in VirtualMachine.AllThreads We cannot add any object in the JDWP object registry while holding the Locks::thread_list_lock. Indeed we may need to suspend a thread and take it, causing a deadlock by waiting for ourself on this lock. Bug: 17343664 (cherry picked from commit d35776413901a6a9d478e06dc354ea4f7d962e04) Change-Id: I07d150b95a6d2b62c913bf2ca2ac217911b2f19d
|
4537c41b9a58c2280b3ad8bcf0130ed11c7a54f6 |
|
28-Aug-2014 |
Sebastien Hertz <shertz@google.com> |
Don't hold any lock when visiting classes from JDWP Computes reference type ids of all loaded classes without holding the class linker lock. Because computing the JDWP reference type id can cause thread suspension, we can't hold any lock. This is detected in debug build (using libartd.so) and causes an abort. Also adds missing thread safety annotations related to ObjectRegistry::lock_. Bug: 17305632 Bug: 16720689 (cherry picked from commit 95795e286145a4aece5c4a095fa2e7e88ee2115a) Change-Id: If4fb069790a0a3358ad49da8f75c62a54c0f0b56
|
d35776413901a6a9d478e06dc354ea4f7d962e04 |
|
09-Sep-2014 |
Sebastien Hertz <shertz@google.com> |
Fix deadlock in VirtualMachine.AllThreads We cannot add any object in the JDWP object registry while holding the Locks::thread_list_lock. Indeed we may need to suspend a thread and take it, causing a deadlock by waiting for ourself on this lock. Bug: 17343664 Change-Id: I2335c63e418c0d485daf2c35f8debcd52f943140
|
c0542af3e2170143ba40d89136e284997e16bf64 |
|
04-Sep-2014 |
Ian Rogers <irogers@google.com> |
Remove abuse of mirror::Object* to reference special values. Remove kInvalidIndirectRefObject, kClearedJniWeakGlobal and ObjectRegistry::kInvalidObject. Handle error conditions by passing in or returning an error value. GetObjectRefType is simplified to be faster and not return invalid references that are not expected according to the spec. Adjust check JNI and jni_internal_test appropriately. Fix cases in the debugger/JDWP of out arguments being passed by reference. Bug: 17376993 Change-Id: I3ce8a28c01827e163f4dc288449959464da788b1
|
95795e286145a4aece5c4a095fa2e7e88ee2115a |
|
28-Aug-2014 |
Sebastien Hertz <shertz@google.com> |
Don't hold any lock when visiting classes from JDWP Computes reference type ids of all loaded classes without holding the class linker lock. Because computing the JDWP reference type id can cause thread suspension, we can't hold any lock. This is detected in debug build (using libartd.so) and causes an abort. Also adds missing thread safety annotations related to ObjectRegistry::lock_. Bug: 17305632 Bug: 16720689 Change-Id: Id2cbd56624499c09e4755aaef7a9b15d2bdf4c91
|
e63db27db913f1a88e2095a1ee8239b2bb9124e8 |
|
16-Jul-2014 |
Ian Rogers <irogers@google.com> |
Break apart header files. Create libart-gtest for common runtime and compiler gtest routines. Rename CompilerCallbacksImpl that is quick compiler specific. Rename trace clock source constants to not use the overloaded profiler term. Change-Id: I4aac4bdc7e7850c68335f81e59a390133b54e933
|
b5a9e3d1cc1fd66683e43e365afc8c900e2800c4 |
|
09-Jun-2014 |
Hiroshi Yamauchi <yamauchi@google.com> |
Remove Object* weak roots from the debugger. The weak roots were converted to JNI weak refs. Since the weak roots are now normal JNI weak refs, we eliminate the need to insert read barriers for those weak roots in the debugger and the need for the GC to have a separate step to update them as part of the system weak sweeping. Bug: 12687968 Change-Id: If16396d4713457b8af4f1ea6a0c6ec6799cb615e
|
83c8ee000d525017ead8753fce6bc1020249b96a |
|
28-Jan-2014 |
Mathieu Chartier <mathieuc@google.com> |
Add root types and thread id to root visiting. Enables us to pass the root type and thread id to hprof. Bug: 12680863 Change-Id: I6a0f1f9e3aa8f9b4033d695818ae7ca3460d67cb
|
412c7fced915fc8d4d5e4166e977d55c809168a6 |
|
07-Feb-2014 |
Mathieu Chartier <mathieuc@google.com> |
Make debugger / jdwp compaction safe. Fixed GetInstances, GetReferringObjects, CountInstances to use VisitObjects instead of the live bitmap. We now treat the object registry as system weaks and update the objects when/if they move. Also added the recent_allocation_records_ as roots. Bug: 12936165 Change-Id: I615c289efbf2977ceab5c4ffa73d216d799e6e33
|
ea46f950e7a51585db293cd7f047de190a482414 |
|
30-Jul-2013 |
Brian Carlstrom <bdc@google.com> |
Refactor java.lang.reflect implementation Cherry-picked from commit ed41d5c44299ec5d44b8514f6e17f802f48094d1. Move to ArtMethod/Field instead of AbstractMethod/Field and have java.lang.reflect APIs delegate to ArtMethod/ArtField. Bug: 10014286. Change-Id: Iafc1d8c5b62562c9af8fb9fd8c5e1d61270536e7
|
fc0e3219edc9a5bf81b166e82fd5db2796eb6a0d |
|
17-Jul-2013 |
Brian Carlstrom <bdc@google.com> |
Fix multiple inclusion guards to match new pathnames Change-Id: Id7735be1d75bc315733b1773fba45c1deb8ace43
|
7940e44f4517de5e2634a7e07d58d0fb26160513 |
|
12-Jul-2013 |
Brian Carlstrom <bdc@google.com> |
Create separate Android.mk for main build targets The runtime, compiler, dex2oat, and oatdump now are in seperate trees to prevent dependency creep. They can now be individually built without rebuilding the rest of the art projects. dalvikvm and jdwpspy were already this way. Builds in the art directory should behave as before, building everything including tests. Change-Id: Ic6b1151e5ed0f823c3dd301afd2b13eb2d8feb81
|