[aarch64-port-dev ] Review, please

Johnson, E Andrew c_ejohns at qti.qualcomm.com
Tue Apr 14 18:13:39 UTC 2015


The inlining threshold setting in globals_XXX.hpp is a default setting for all compilation policies.  The override in AdvancedCompilationPolicy is strictly for Tiered Compilation.  That's why the machine-specific conditionals are in the initialize method, since the static defaults have been found to be too small when Tiered Compilation is in effect.  That being said, the default value set in globals_aarch64.hpp is probably too small, since it isn't consistent with the settings for other 64-bit architectures (e.g. PPC & Sparc).  I would recommend setting the global default value to 1500.  

In running some experiments with different benchmarks, turning on and turning off tiered compilation, and turning on "compile all", the minimum value to give the best performance was 1200.  I am recommending 1500 because that is the default setting for PPC and Sparc.  If there was a separate set of globals for x86_64 (aka amd64), it would probably be 1500 there as well.

I find it interesting that the default inlining threshold value for both X86 and Sparc (both architectures supported by Oracle) is increased by 1000 when Tiered Compilation is enabled.  If I had to guess, I would imagine that these values were arrived at by similar experiments by the Java Performance Team.  Note that the overrides only happen if there was no user-specified:
-XX:InlineSmallCode=<value>

-AndyJ

-----Original Message-----
From: Andrew Haley [mailto:aph at redhat.com] 
Sent: Tuesday, April 14, 2015 8:56 AM
To: Johnson, E Andrew; Edward Nevill
Cc: aarch64-port-dev at openjdk.java.net
Subject: Re: [aarch64-port-dev ] Review, please

On 04/14/2015 01:53 PM, Johnson, E Andrew wrote:

> Thanks, Ed.  I will check out each individual patch and verify that
> (a) it is necessary, and (b) can't possibly be solved another way in 
> the specific architecture files.  Thanks for the advice.

One thing which would really help us if if you could find out what inlining threshold really is best.  Can you try a few different values around that area and tell us what happens to SPECjvm?  We really don't know what it should be.

Thanks,
Andrew.



More information about the aarch64-port-dev mailing list