RFR: 8029186: regression-hotspot nightly failure: assert(FLAG_IS_DEFAULT(MaxNewSize) || MaxNewSize < MaxHeapSize) failed
Stefan Johansson
stefan.johansson at oracle.com
Wed Mar 26 15:45:31 UTC 2014
On 2014-03-26 15:59, Jesper Wilhelmsson wrote:
> Oh how I love the duplicated storage. Good thing it's going away at
> some point...
>
Sounds good!
Thanks for reviewing,
Stefan
> Looks even better with this change ;-)
> Ship it!
> /Jesper
>
> Stefan Johansson skrev 26/3/14 11:48:
>> 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