RFR: 8014510: Fix sjavac on all platforms in jprt
erik.joelsson at oracle.com
Fri Aug 22 14:20:47 UTC 2014
Thanks for looking into this. I took the liberty of tuning this some
more and finally arrived at this set of changes:
First of all I wanted to get rid of the big if-else construct, so I
changed that into a simple MEMORY_SIZE/2 for sjavac server mx flag. Then
I did some tests on my machine and with the modules build, sjavac really
isn't that memory intensive anymore. I set a cap at 2GB (1,5 for 32 bit
jvms) and also set a minimum of 512M, which I have verified still works.
I also removed the verbosegc flag.
When changing these settings, it struck me that the mx in BIG_JAVA_FLAGS
is a static configuration and should probably also be tuned in the same
way. I left the old values as the maximum caps and let them go as low as
512. This has also been verified to be enough.
Finally, since the memory requirements of the java instances in the
build have been reduced, I also chose to tweak the memory based limiter
on the default number of jobs.
With this I'm able to run builds through JPRT with sjavac enabled and I
believe that there should be no trouble enabling it for every day use on
most build configurations. We still cannot enable it by default until
JDK-8054717 is fixed however, as it's currently not guaranteeing a
correct incremental build.
On 2014-08-20 16:55, Andreas Lundblad wrote:
> Hi build-dev,
> Please review the fix for JDK-8014510: Fix sjavac on all platforms in jprt
> JPRT jobs fail (on Sparc) with sjavac enabled. This is because the JVM can't allocate the requested amount of memory upon launch. This patch changes the the -Xms setting (which ranges from 1G to 10G) to 512M.
> Link to webrev:
> Links to bug report:
> -- Andreas
More information about the build-dev