On 2014-03-13 17:08, Erik Joelsson wrote:
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/
Looks good!
However the variable BOOT_JDK_JVMARGS is not used anywhere any longer,
so I'd appreciate if you could remove it completely.
Also, you're outputting this:
AC_MSG_CHECKING([flags for boot jdk java command for big configurations] )
It's great that you provide user feedback! However, we use the word
"configuration" for a very specific meaning and I think it's better to
rephrase this, maybe something like:
AC_MSG_CHECKING([flags for java command for big workloads])
(also note the absence of space before the end paranthesis). And
correspondingly for small.
/Magnus