[9] RFR(L): 8046809: vm/mlvm/meth/stress/compiler/deoptimize CodeCache is full.

Nils Eliasson nils.eliasson at oracle.com
Fri Oct 10 09:01:53 UTC 2014


Hi, Albert

Overall a very welcome change to move the sweeper into a separate thread.

On 2014-10-09 10:24, Albert Noll wrote:
> The patch also removes CodeCacheMinimumFreeSpace and 'critical' code 
> cache allocations. Due to a bug in
> heap.cpp, the CodeCacheMinimumFreeSpace was in fact not reserved for 
> 'critical' allocations. The following
> lines produce an underflow if heap_unallocated_capacity() < 
> CodeCacheMinimumFreeSpace:
>
> segments_to_size(number_of_segments) > (heap_unallocated_capacity() - 
> CodeCacheMinimumFreeSpace)
>
> Since the critical part in the code cache was never used for its 
> intended purpose and we did not have problems
> due to that, we can remove it.

Are you sure? The reasons for the CodeCacheMinimumFreeSpace and critical 
allocations where problems with code cache fragmentation in long running 
applications, where small compilations would starve out the adaptors and 
cause VM shutdown. You won't see this other than in the really long 
running tests. It might be broken - but then we should open a bug and 
fix it.  (And in the long run we should handle the fragmentation with 
relocating code.)

Regards,
//Nils


More information about the hotspot-compiler-dev mailing list