RFR(XS): 8024128: guarantee(codelet_size > 0 && (size_t)codelet_size > 2*K) failed: not enough space for interpreter generation

Vladimir Kozlov vladimir.kozlov at oracle.com
Fri Sep 14 18:33:17 UTC 2018


Hi Leslie

More context is needed. Is it Client or Server VM? Did you change ReservedCodeCacheSize?
Even with *4 it is about 1Mb when CodeCache size is 48Mb and in Tiered case even bigger.
Also we need call stack when you hit guarantee().

Regards,
Vladimir

On 9/14/18 4:31 AM, Leslie Zhai wrote:
> Hi,
> 
> I just quoted the old thread 
> http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2013-October/012243.html
> 
> I think we should increase it more for future otherwise you will have to
> always catch up with interpreter changes.
> 
> Increase it to 256 * 1024 and 224 * 1024
> 
> Vladimir
> 
> On 10/16/13 12:22 PM, Albert Noll wrote:
>  > Hi,
>  >
>  > could I have a review for this patch?
>  >
>  > bug: https://bugs.openjdk.java.net/browse/JDK-8026708
>  > webrev: http://cr.openjdk.java.net/~anoll/8026708/webrev.00/
>  > <http://cr.openjdk.java.net/%7Eanoll/8026708/webrev.00/>
>  >
>  > Problem: Not enough room for interpreter. My last patch did not solve
>  > the problem for solaris-amd64.
>  >                 A local build (solaris-amd64) of the most recent
>  > hotspot-comp version requires a template interpreter
>  >                 size of 211K (obtained with -XX:+PrintInterpreter).
>  > There have been some modifications to the template
>  >                 interpreter in the last couple of weeks which might have
>  > triggered this error.
>  >
>  > Solution: Increase interpreter size by 8k (32-bit and 64-bit).
>  >
>  > Testing: Failing test case in solaris-amd64
> 
> ----- 8< -------- 8< -------- 8< -------- 8< -------- 8< -------- 8< ---
> 
> I found that `InterpreterCodeSize` had been changed from 200K to 208K [1] ,  then changed from 208K 
> to 256K [2] by Albert.  But if built with-debug-level=fastdebug/slowdebug,  it will be multiplied by 
> four:
> 
> NOT_PRODUCT(code_size *= 4;)  // debug uses extra interpreter code space
> 
> Then it might trigger Native memory allocation (malloc) failed to allocate xxx bytes for CodeCache: 
> no room for Interpreter issue.
> 
> I don't want to always catch up with interpreter changes by guessing the suitable number, not too 
> small, not too big :) Please give me some suggestion about the root cause,  thanks a lot!
> 
> Leslie Zhai
> 
> [1] http://hg.openjdk.java.net/jdk8u/jdk8u-dev/hotspot/rev/6d7eba360ba4
> 
> [2] http://hg.openjdk.java.net/jdk8u/jdk8u-dev/hotspot/rev/74e00b98d5dd
> 
> 


More information about the hotspot-compiler-dev mailing list