RFR(S): 8213086: Compiler thread creation should be bounded by available space in memory and Code Cache

Vladimir Kozlov vladimir.kozlov at oracle.com
Mon Oct 29 16:48:02 UTC 2018


So the issue was / 200*M vs correct / (200*M). Thank you for finding and fixing this.

About taking into account sizes of segmented CodeCache. If segmentation is off (-XX:-SegmentedCodeCache) 
unallocated_capacity() will return 0:

http://hg.openjdk.java.net/jdk/jdk/file/e53af5fa0dae/src/hotspot/share/code/codeCache.cpp#l1003

You need to take that into account.

Thanks,
Vladimir

On 10/29/18 9:26 AM, Doerr, Martin wrote:
> Hi Tobias,
> 
> thank you for filing https://bugs.openjdk.java.net/browse/JDK-8213086
> 
> I have changed the description because the available memory doesn’t get respected due to missing braces. So I’d like to 
> fix this in addition.
> 
> My test machines have too much memory to hit this case. Maybe I should try to use a docker container for testing.
> 
> My initial proposal allows up to one compiler thread per 128kB of free code cache. I remember that Oracle wants to have 
> many threads (for some SPARC scenarios) so I have chosen a small size.
> 
> I’m currently ignoring that C1 also creates some small non-profiled nmethods.
> 
> Please review:
> 
> http://cr.openjdk.java.net/~mdoerr/8213086_compiler_limit/webrev.00/
> 
> Best regards,
> 
> Martin
> 


More information about the hotspot-compiler-dev mailing list