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 18:11:17 UTC 2013


Hi Everyone,

I meant to add:

Apologies to Tao for not considering this case during the original 
review and*many, many* thanks to Bengt for doing the initial analysis, 
diagnosis, and suggesting a fix.

JohnC

On 2/11/2013 10:01 AM, 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
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/hotspot-gc-dev/attachments/20130211/4d53c6e0/attachment.htm>


More information about the hotspot-gc-dev mailing list