RFR: 8029186: regression-hotspot nightly failure: assert(FLAG_IS_DEFAULT(MaxNewSize) || MaxNewSize < MaxHeapSize) failed
Jesper Wilhelmsson
jesper.wilhelmsson at oracle.com
Wed Apr 2 17:06:51 UTC 2014
Ship it!
/Jesper
Jon Masamitsu skrev 2/4/14 18:39:
>
> On 4/2/14 4:20 AM, Stefan Johansson wrote:
>> I got a second review from Jon Masamitsu, he had some comments and these have
>> been fixed.
>>
>> Here's an incremental webrev:
>> http://cr.openjdk.java.net/~sjohanss/8029186/webrev.01-02/
>>
>> Here's the full change:
>> http://cr.openjdk.java.net/~sjohanss/8029186/webrev.02/
>>
>> Thanks Jon and Jesper for reviewing this.
>
> Thanks.
>
> Reviewed.
>
> Jon
>
>>
>> Cheers,
>> Stefan
>>
>> On 2014-03-26 11:48, Stefan Johansson wrote:
>>> Thanks Jesper for looking at this.
>>>
>>> I actually found an issue myself when going over the code. The problem is in
>>> initialize_flags for the TwoGenerationalPolicy, where I verify that the
>>> desired new_size is within the allowed bounds. I realized that I need to
>>> check against the flag MaxNewSize since the member might not have been
>>> initialized yet. Below is the diff for the change and an updated webrev can
>>> be found here:
>>> http://cr.openjdk.java.net/~sjohanss/8029186/webrev.01/
>>>
>>> ---
>>> @@ -422,7 +422,9 @@
>>> if (FLAG_IS_CMDLINE(OldSize) && !FLAG_IS_CMDLINE(NewSize)) {
>>> if (OldSize < _initial_heap_byte_size) {
>>> size_t new_size = _initial_heap_byte_size - OldSize;
>>> - if (new_size >= _min_gen0_size && new_size <= _max_gen0_size) {
>>> + // Need to compare against the flag value for max since _max_gen0_size
>>> + // might not have been set yet.
>>> + if (new_size >= _min_gen0_size && new_size <= MaxNewSize) {
>>> FLAG_SET_ERGO(uintx, NewSize, new_size);
>>> _initial_gen0_size = NewSize;
>>> }
>>> ---
>>>
>>> Thanks,
>>> Stefan
>>>
>>> On 2014-03-25 17:33, Jesper Wilhelmsson wrote:
>>>> Ship it!
>>>> /Jesper
>>>>
>>>> Stefan Johansson skrev 25/3/14 16:29:
>>>>> Hi,
>>>>>
>>>>> Please review this fix for:
>>>>> https://bugs.openjdk.java.net/browse/JDK-8029186
>>>>>
>>>>> Webrev:
>>>>> http://cr.openjdk.java.net/~sjohanss/8029186/webrev.00/
>>>>>
>>>>> Summary:
>>>>> There have been a lot of bugs due to corner cases with heap sizing flags. This
>>>>> change strives to fix this particular problem and at the same time somewhat
>>>>> simplify the collector policy. I've also added some assertions to ensure that
>>>>> the sizing of the heap is more correct.
>>>>>
>>>>> Testing:
>>>>> * JPRT sanity and JTREG
>>>>> * Adhoc aurora run for tmtools tests
>>>>> * Script that verifies that we don't get assertions during startup for
>>>>> different
>>>>> combinations of NewSize, MaxNewSize, OldSize, Xms and Xmx.
>>>>>
>>>>> Thanks,
>>>>> StefanJ
>>>
>>
>
More information about the hotspot-gc-dev
mailing list