RFR: 8275917: Some locks shouldn't allow_vm_block

Coleen Phillimore coleenp at openjdk.java.net
Wed Oct 27 12:37:13 UTC 2021


On Tue, 26 Oct 2021 19:43:46 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:

> There were a few safepoint checking locks that passed allow_vm_block as true, that aren't taken by the VMThread.  I also made ClassInitError_lock behave like SystemDictionaryLock and the others in SystemDictionary::do_unloading so that doesn't require allow_vm_block either.  See the CR for more details.
> 
> Tested with tier1-6.

David, everything you wrote above is accurate.

You might be right about the Terminator_lock.  My logging and testing only printed for locks taken by NJT in a safepoint and it appeared in this list, but it may not have been the VMThread.  For reasons that I put in the CR, I can't expand the check for allow_vm_block to include this condition, only the VMThread.  Another pass of logging just for the VMThread shows that the Terminator_lock isn't taken.  I'll test with changing this one also.  This is my new set if I change logging to print for VMThread only.

ExpandHeap_lock  G1OldGCCount_lock  Notify_lock  OopMapCacheAlloc_lock  Threads_lock  VMOperation_lock

-------------

PR: https://git.openjdk.java.net/jdk/pull/6123


More information about the hotspot-dev mailing list