[9] RFR(XS): 8059596: VM startup fails with 'Invalid code heap sizes' if -XX:ReservedCodeCacheSize is set

Vladimir Kozlov vladimir.kozlov at oracle.com
Fri Nov 14 18:02:33 UTC 2014


Thank you, Tobias

Vladimir

On 11/14/14 3:41 AM, Tobias Hartmann wrote:
> Hi Vladimir,
>
> On 14.11.2014 02:13, Vladimir Kozlov wrote:
>> Hi Tobias,
>>
>> At the line 1149 we set ReservedCodeCacheSize to ERGO so it is not DEFAULT anymore:
>>
>> 1149     FLAG_SET_ERGO(uintx, ReservedCodeCacheSize, ReservedCodeCacheSize * 5);
>>
>> As result segments sizes are not set there. They will be set to in
>> CodeCache::initialize_heaps() as (ReservedCodeCacheSize -
>> NonNMethodCodeHeapSize) / 2:
>>
>> CodeHeap 'non-nmethods': size=5700Kb used=2278Kb max_used=2279Kb free=3421Kb
>> CodeHeap 'profiled nmethods': size=120032Kb used=120Kb max_used=120Kb free=119912Kb
>> CodeHeap 'non-profiled nmethods': size=120032Kb used=22Kb max_used=22Kb free=120
>>
>> But it is not *5 sizes:
>>
>> define_pd_global(intx, NonProfiledCodeHeapSize,      21*M);
>> define_pd_global(intx, ProfiledCodeHeapSize,         22*M);
>>
>> And it skips the assert in arguments.cpp
>
> Thanks for pointing that out. As Vladimir I. already suggested, I will move the
> logic into CodeCache::initialize_heaps() and check consistency there.
>
> I filed JDK-8059611 for that.
>
> Thanks,
> Tobias
>
>>
>> Vladimir
>>
>> On 10/2/14 2:17 AM, Tobias Hartmann wrote:
>>> Hi,
>>>
>>> please review this small patch.
>>>
>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8059596
>>> Webrev: http://cr.openjdk.java.net/~thartmann/8059596/webrev.00/
>>>
>>> Problem:
>>> The VM startup fails with 'Invalid code heap sizes' if
>>> -XX:ReservedCodeCacheSize >= 240M is specified. The problem is that in
>>> Arguments::set_tiered_flags() the code cache size is increased by 5 if
>>> TieredCompilation is enabled. This should only be done for default values.
>>>
>>> Solution:
>>> Add missing FLAG_IS_DEFAULT(ReservedCodeCacheSize) check.
>>>
>>> Thanks,
>>> Tobias


More information about the hotspot-compiler-dev mailing list