RFR: 8199717: Avoid calculating primordial thread stack bounds on VM startup

Claes Redestad claes.redestad at oracle.com
Tue Mar 27 10:02:01 UTC 2018


on linux, we scan /proc/self/maps to be able to tell if the current 
thread is the "primordial" one.

However, when initializing the VM, all the java launchers spawn a new 
thread rather than initializing the VM on the primordial thread, so we 
can deduce that none of the threads we'll run on will be the primordial 
thread if started by one of the standard java launchers. This enables us 
to skip reading the /proc/self/maps entirely.

Bug: https://bugs.openjdk.java.net/browse/JDK-8199717

Webrev: http://cr.openjdk.java.net/~redestad/8199717/open.00/

This patch uses the Arguments::created_by_java_launcher(), which checks 
is the sun.java.launcher property has been set or not. There is a small 
risk third party launchers sets the sun.java.launcher property even when 
not conforming to the behavior of the standard java launchers; if so the 
existing created_by_java_launcher() method might need to be re-examined 
in a follow up.

This shaves ~0.7ms off of startup on my linux machine.



More information about the hotspot-runtime-dev mailing list