RFR(s): 8209139: globalCounter bootstrap issue

Robbin Ehn robbin.ehn at oracle.com
Wed Nov 7 08:56:58 UTC 2018


Hi all, please review.

When changing the hashtable for SymbolTable we did a hack to handle the case
when symbols gets inserted before the VM is proper initialized, by doing nothing
in the GlobalCounter if there is no threads. The problem is that the thread
creating the VM is not yet added to the VM (non-SMR-thread) and thus
ThreadsListHandle do not yet work for that thread. Trying to move the addition
of the creating thread earlier in the bootstrap is troublesome.

This removes that hack and do a more generic solution for ThreadsList instead.
To make it safe to verify that we are talking about the bootstrap ThreadsList 
from a non-SMR-thread we cannot follow that pointer. Using null was intrusive to 
the code I therefore choose to do a static bootstrap ThreadsList.

CR: https://bugs.openjdk.java.net/browse/JDK-8209139
Webrev: http://cr.openjdk.java.net/~rehn/8209139/webrev/

Tested with use of ThreadsListHandle and GlobalCounter in the problematic init 
method, passed t1-2 with use of ThreadsListHandle in that init method.

Thanks, Robbin


More information about the hotspot-runtime-dev mailing list