RFR: 8196083: Avoid locking in OopStorage::release

Kim Barrett kim.barrett at oracle.com
Sat Feb 3 00:35:59 UTC 2018


Please review this change to the OopStorage::release operations to
eliminate their use of locks.  Rather than directly performing the
_allocate_list updates when the block containing the entries being
released undergoes a state transition (full to not-full, not-full to
empty), we instead record the occurrence of the transition.  This
recording is performed via a lock-free push of the block onto a list
of such deferred updates, if the block is not already present in the
list.  Update requests are processed by later allocate and
delete_empty_block operations.

Also backed out the JDK-8195979 lock rank changes for the JNI mutexes.
Those are no longer required to nested lock rank ordering errors.

CR:
https://bugs.openjdk.java.net/browse/JDK-8196083

Webrev:
http://cr.openjdk.java.net/~kbarrett/8196083/open.00/

Testing:
Reproducer from JDK-8195979.
Mach5 {hs,jdk}-tier{1,2,3}



More information about the hotspot-dev mailing list