[prev in list] [next in list] [prev in thread] [next in thread]
List: openjdk-hotspot-gc-dev
Subject: Re: RFR(XXS): 8017070: G1: assert(_card_counts[card_num] <= G1ConcRSHotCardLimit) failed
From: John Cuthbertson <john.cuthbertson () oracle ! com>
Date: 2013-06-28 20:54:06
Message-ID: 51CDF7EE.3000006 () oracle ! com
[Download RAW message or body]
Hi Tao,
Thanks for the review.
JohnC
On 6/28/2013 12:35 PM, Tao Mao wrote:
> looks good to me.
>
> Tao
>
> On 6/28/13 12:01 PM, John Cuthbertson wrote:
>> Hi All,
>>
>> Can I couple of volunteers review this extremely small change? The
>> webrev can be found at:
>> http://cr.openjdk.java.net/~johnc/8017070/webrev.0/
>>
>> Summary:
>> The assert that fired is invalid. A card can be added to more than
>> one update buffer since reads and writes to the card table are not
>> atomic. If two threads end up refining the card at the same time then
>> the count for that card can be incremented twice. If count is just
>> below the hot threshold, the double increment will trip the assert.
>> Since the card was enqueued by two different threads we do want the
>> the double increment to more accurately reflect how hot the card is.
>> I have removed the invalid assert and use a bounding expression to
>> assign the new count value.
>>
>> Testing:
>> Weblogic+medrec on the failing SQE machine (though I couldn't
>> reproduce the original problem)
>> Weblogic+medrec on an Intel Haswell machine
>> GC test suite
>> jprt.
>>
>> Thanks,
>>
>> JohnC
>>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic