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

John Cuthbertson john.cuthbertson at oracle.com
Tue Apr 16 19:34:25 UTC 2013


Hi Coleen,

Thanks. I will add you as a reviewer.

JohnC

On 4/16/2013 12:05 PM, Coleen Phillimore wrote:
>
> 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