Hello,

When building on large machines, the default Hotspot ergonomics are causing us trouble. Trying to spawn 30 or more jvm instances just does not work with default options. To tackle this, I've split the JAVA_FLAGS variable into one common JAVA_FLAGS and two separate JAVA_FLAGS_BIG and JAVA_FLAGS_SMALL. Big contains the memory settings that used to be in JAVA_FLAGS. Small sets SerialGC and a smaller heap. Small is then used for most of our smaller jvm instances in the build. (Building demos, tools and most notably when running native2ascii in images to generate _ja man pages).

On the particular machine this was last reported on (32 virtual cpus, 256GB memory), the default setting of JOBS=16 (which is the current max automatic setting) would fail in native2ascii. With these changes I'm able to run the build with at least JOBS=100. There is currently no performance improvement going from 16 to 100 jobs, but it's good to know we no longer have issues with resources when scaling up.

Bug: https://bugs.openjdk.java.net/browse/JDK-8010767
Webrevs:
http://cr.openjdk.java.net/~erikj/8010767/webrev.root.01/
http://cr.openjdk.java.net/~erikj/8010767/webrev.jdk.01/

/Erik

Reply via email to