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