RFR (XXS): 8164133: Tests gc/arguments/TestAlignmentToUseLargePages.java and gc/cms/TestBubbleUpRef.java use too small heap

Jon Masamitsu jon.masamitsu at oracle.com
Mon Aug 22 21:55:29 UTC 2016



On 08/22/2016 12:49 PM, sangheon wrote:
> Hi Dima and Jon,
>
> Let me interrupt a little bit.
>
> As you know, we can have quite big heap alignment with large pages 
> enabled. And this affects to our heap ergonomics.
> However, as the test case tests only whether the VM is successfully 
> initialized or not, I think large 'Xms' option is enough to fix the 
> problem.
> For me, the new 'Xms/Xmx' values seem always OK to initialize VM.
>
> Jon, the original test failure contains '-Xms7m -Xmx9m' options.
> "GC triggered before VM initialization completed. Try increasing 
> NewSize, current value 1280K. "

If I execute "java -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -Xms7m 
-Xmx9m -XX:+UseLargePages -version"

I see

[0.165s][info   ][gc,heap,exit ] Heap
[0.165s][info   ][gc,heap,exit ]  par new generation   total 2432K, used 
1679K [0x00000000ff600000, 0x00000000ff8a0000, 0x00000000ff8a0000)
[0.165s][info   ][gc,heap,exit ]   eden space 2176K,  77% used 
[0x00000000ff600000, 0x00000000ff7a3d30, 0x00000000ff820000)
[0.165s][info   ][gc,heap,exit ]   from space 256K,   0% used 
[0x00000000ff820000, 0x00000000ff820000, 0x00000000ff860000)
[0.165s][info   ][gc,heap,exit ]   to   space 256K,   0% used 
[0x00000000ff860000, 0x00000000ff860000, 0x00000000ff8a0000)
[0.165s][info   ][gc,heap,exit ]  concurrent mark-sweep generation total 
5504K, used 0K [0x00000000ff8a0000, 0x00000000ffe00000, 0x0000000100000000)

which says "par new generation   total 2432K" so isn't 2432K the ParNew 
size?

Jon

>
> To answer to Jon's original question, the reason of "1280k (1310720)" 
> is that NewSize(default value of 1363144) is aligned to gen 
> alignment(65536) from GenCollectorPolicy::initialize_flags(). 
> collectorPolicy.cpp:line 316
> We resize NewSize from GenCollectorPolicy::initialize_size_info() if 
> needed, but it seems like this is not the case.
>
> Given above, the patch seems okay.
>
> Thanks,
> Sangheon
>
>
> On 08/22/2016 10:37 AM, Jon Masamitsu wrote:
>>
>>
>> On 08/22/2016 08:55 AM, Dmitry Fazunenko wrote:
>>> Jon,
>>>
>>> The problem could be reproduced by the following command:
>>>
>>> #> java -Xmx3m -XX:+UseConcMarkSweepGC -XX:+AggressiveOpts -version
>>> Error occurred during initialization of VM
>>> GC triggered before VM initialization completed. Try increasing 
>>> NewSize, current value 640K.
>>
>> I didn't notice that "-Xmx3m" was on the command line for the 
>> original failure.
>> Without -Xmx3m I expected that the default heap was large and 
>> wondered why
>> NewSize was so small.
>>
>> Jon
>>
>>>
>>> increasing Xmx from 3m to 4m helps:
>>>
>>> #> java -Xmx4m -XX:+UseConcMarkSweepGC -XX:+AggressiveOpts -version
>>> java version "9-ea"
>>> Java(TM) SE Runtime Environment (build 9-ea+132)
>>> Java HotSpot(TM) 64-Bit Server VM (build 9-ea+132, mixed mode)
>>>
>>> I don't see anything suspicious in the GC log (attached).
>>>
>>> There is no requirement to minimal heap required for Hotspot to work 
>>> normally, so I think the tests should not start VM with so small heaps.
>>>
>>>
>>> Thanks,
>>> Dima
>>>
>>>
>>>
>>>
>>> On 19.08.2016 21:02, Jon Masamitsu wrote:
>>>> Dima,
>>>>
>>>> The error message I see in the logs is
>>>>
>>>> GC triggered before VM initialization completed. Try increasing 
>>>> NewSize, current value 1280K.
>>>>
>>>> Do you know why the NewSize is so small?  I ask because I'm
>>>> not sure setting a larger heap size will always fix this failure.
>>>>
>>>> If the test is run (with the parameters that fail) and 
>>>> -Xlog:gc*=trace, you might
>>>> see why the NewSize is so small (if you don't know now).
>>>>
>>>> Jon
>>>>
>>>>
>>>> On 8/19/2016 9:02 AM, Dmitry Fazunenko wrote:
>>>>> Hello,
>>>>>
>>>>> May I have to get a couple of reviews for a trivial fix:
>>>>>
>>>>> https://bugs.openjdk.java.net/browse/JDK-8164133
>>>>> http://cr.openjdk.java.net/~dfazunen/8164133/webrev.01/
>>>>>
>>>>> Two tests set very small maximum heap size, which may cause:
>>>>>   starts VM with too small heap size, which might cause
>>>>>   Error occurred during initialization of VM
>>>>> None of those tests does really require such a small heap, so just 
>>>>> increasing should help.
>>>>>
>>>>> Thanks,
>>>>> Dima
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>




More information about the hotspot-gc-dev mailing list