RFR (S) 8213723 / 8213893 - More Monitor/mutex initialization management

David Holmes david.holmes at oracle.com
Thu Nov 15 04:24:46 UTC 2018


webrev: http://cr.openjdk.java.net/~dholmes/8213723/webrev/

bug: https://bugs.openjdk.java.net/browse/JDK-8213723

I found a bunch of mutex/monitor instances that are dynamically created 
and embedded in classes rather than being part of the global mutex 
table. This isn't necessarily a problem as long as they aren't created 
before the low-level mutex initialization code has executed. I added 
some debug code to verify no mutex/monitor is created before 
os::init_2() has executed (which is a constraint imposed by Solaris sync 
code being dependent on argument parsing).

I found one mutex that was created too soon, and that was the 
NMTQuery_lock, so that is now moved to the global list in MutexLocker. 
It's only used with the NMT DCmd and so doesn't need to be created 
exceptionally early.

Just a reminder we don't see any problems today because mutex/monitor 
construction is trivial and independent of everything else. But the 
mutex/monitor rewrite that is being worked on requires OS initialization 
of mutex related attributes.

Also trivially fixed:

https://bugs.openjdk.java.net/browse/JDK-8213893

which deletes the unused StringTable_lock.

Thanks,
David


More information about the hotspot-runtime-dev mailing list