CRR: G1: assert((_g1->evacuation_failed()) || (!_g1->obj_in_cs(obj))) failed (XS)

Tony Printezis tony.printezis at oracle.com
Wed May 4 12:53:15 PDT 2011


Thanks Ramki! All set.

Y. Srinivas Ramakrishna wrote:
> Looks good to me.
>
> -- ramki
>
> On 5/4/2011 11:31 AM, Tony Printezis wrote:
>> Hi all,
>>
>> I'd like one more review for this small fix:
>>
>> http://cr.openjdk.java.net/~tonyp/7040450/webrev.0/
>>
>> The problem was that the assert at the end of mark_forwardee() was 
>> too strong and if another thread
>> self-forwarded the object we might have hit the assert before the 
>> other thread got a chance to set
>> the evacuation failure flag. I removed the assert (as it's not 
>> straightforward to make it work in
>> the presence of this race) and I added two new asserts in the 
>> evacuation handling code to make sure
>> that the post-conditions are as expected before we get to 
>> mark_forwardee().
>>
>> Tony
>


More information about the hotspot-gc-dev mailing list