RFR(S): 8007772: G1: assert(!hr->isHumongous() || mr.start() == hr->bottom()) failed: the start of HeapRegion and MemRegion should be consistent for humongous regions

John Cuthbertson john.cuthbertson at oracle.com
Mon Feb 11 20:36:50 UTC 2013


Hi Bengt,

Thanks for looking over the code changes.  I figured running the failing 
subset of the nightlies would be a good test.

Thanks,

JohnC

On 2/11/2013 12:04 PM, Bengt Rutisson wrote:
>
> Hi John,
>
> Looks good to me.
>
> Thanks for fixing this so quickly! And great that you did such 
> thorough testing!
>
> Bengt
>
> On 2/11/13 7:01 PM, John Cuthbertson wrote:
>> Hi Everyone,
>>
>> Can I get a couple of reviews of this fix - the webrev can be found 
>> at: http://cr.openjdk.java.net/~johnc/8007772/webrev.0/
>>
>> Summary:
>> An assert I asked Tao to add during his recent scanning optimization 
>> for Humongous regions was failing. The reason was because the local 
>> marking task could have been signaled to abort (because it exceeded 
>> it's time interval) while scanning the humongous object. In this case 
>> we would restart the marking step with a memory region with a 
>> slightly different starting address causing the assert to trip. 
>> Without the assert this would nullify Tao change and cause further 
>> unnecessary scanning of (a subset of) the humongous object. We should 
>> be giving up the current humongous region even if the task is asked 
>> to abort.
>>
>> Testing:
>> The failing tests from nsk.stress and vm.gc nightly tests.
>>
>> Without fix:
>> TOTAL TESTS IN RUN: 154
>> TEST PASS: 102; 66% rate
>> TEST FAIL: 52; 33% rate
>> TEST UNDEFINED: 0; 0% rate
>> TEST INCOMPLETE: 0; 0% rate
>> TESTS NOT RUN: 0
>>
>> With fix:
>> TOTAL TESTS IN RUN: 154
>> TEST PASS: 153; 99% rate
>> TEST FAIL: 1; 0% rate
>> TEST UNDEFINED: 0; 0% rate
>> TEST INCOMPLETE: 0; 0% rate
>> TESTS NOT RUN: 0
>>
>> The remaining failure is FinalizerTest03 - a known failure.
>>
>> Thanks,
>>
>> JohnC
>>
>




More information about the hotspot-gc-dev mailing list