[aarch64-port-dev ] Support large codecache for JDK8

Andrew Haley aph at redhat.com
Tue Mar 10 14:30:58 UTC 2015


On 03/10/2015 12:08 PM, Andrew Dinn wrote:
> 
> On 10/03/15 10:53, Andrew Haley wrote:
>> On 03/10/2015 10:28 AM, Andrew Dinn wrote:
>>> Ok to push?
>>
>> It looks reasonable.  Does the large code cache kick in with the default
>> configuration?  Do we want it to?
> 
> This is essentially the same patch as was applied to 9. So, the code
> cache size is driven by the value of ReservedCodeCache size.
> 
> That variable defaults to 48*M but with tiered it gets multiplied up to
> 5 times that i.e. 240*M and then rounded back down to 128*M by this code:
> 
>   // Increase the code cache size - tiered compiles a lot more.
>   if (FLAG_IS_DEFAULT(ReservedCodeCacheSize)) {
>     FLAG_SET_ERGO(uintx, ReservedCodeCacheSize,
>                   MIN2(CODE_CACHE_DEFAULT_LIMIT, ReservedCodeCacheSize *
> 5));
>   }
> 
> ... and, of course, 128*M is the threshold value above which far
> branches become necessary.
> 
> In other words the answer to your first question is no.
> 
> I don't know the answer to the second question. Anyone who wants a
> larger cache can select it by setting ReservedCodeCache. Is this in some
> way inadequate?

I dunno.  That code didn't make it into the jdk9/dev tree upstream so
we get 240*M.  However, the trampolines bloat the code quite a lot so
maybe if we turned that cache size down it'd work better.  Answers on
a postcard...

By the way, have you tested that the trampolines ect. work OK on JDK8?
With a debug build they should be used with code sizes more than 2*M.

Andrew.



More information about the aarch64-port-dev mailing list