RFR (S): G1: Fix bug with compressed oops on x86_64 and sparc

Coleen Phillimore coleen.phillimore at oracle.com
Tue Apr 16 19:05:48 UTC 2013


Hi,  I read my mail out of order.  Yes you guys own this code, but I 
reviewed it so you can use me as code reviewer.

Coleen

On 04/16/2013 01:21 PM, John Cuthbertson wrote:
> Hi Mikael,
>
> Thanks for submitting the CR. But we should move it back to GC. We are 
> responsible for the barrier code.
>
> Martin: Thanks for finding this. I'll review you the fix. How did you 
> find it? Do you have a test case? The reason I ask is because we 
> haven't seen many missing RSet entry type of errors (December was the 
> last IIRC).
>
> JohnC
>
> On 4/16/2013 2:40 AM, Mikael Gerdin wrote:
>> Martin,
>>
>> (CC:ed runtime)
>>
>> On 2013-04-16 10:38, Doerr, Martin wrote:
>>> Hi all,
>>>
>>> we found a G1 bug in the template interpreter on x86_64 and sparc with
>>> compressed Oops.
>>>
>>> “do_oop_store” performs a “store_heap_oop” which compresses the input
>>> register.
>>>
>>> This compressed Oop is passed to the succeeding g1_write_barrier_post,
>>> which is wrong.
>>>
>>> Correctly, g1_write_barrier_post needs the uncompressed Oop for the 
>>> heap
>>> region crossing check.
>>>
>>> This fix preserves the uncompressed Oop in a register which gets passed
>>> to the g1_write_barrier_post:
>>>
>>> http://cr.openjdk.java.net/~goetz/webrevs/g1-cOops_bug/
>>>
>>> Please supply a bug id and review this change.
>>
>> I filed JDK-8012335 for this. I filed it on hotspot/runtime since I 
>> think that most of the GC team are not that familiar with the 
>> interpreter code.
>>
>> Unfortunately I know too little about the interpreter to review this 
>> but your argument sounds reasonable to me.
>>
>> /Mikael
>>
>>>
>>> Kind regards,
>>>
>>> Martin
>>>
>




More information about the hotspot-gc-dev mailing list