[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 01:13:51 UTC 2014
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
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-dev
mailing list