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

Bengt Rutisson bengt.rutisson at oracle.com
Mon Feb 11 20:04:42 UTC 2013


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