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