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

John Cuthbertson john.cuthbertson at oracle.com
Tue Apr 16 19:26:31 UTC 2013


Hi Coleen,

I'm in the middle of reviewing the fix and I'll sponsor the push. I've 
asked Martin if there was a test case.

JohnC

On 4/16/2013 11:54 AM, Coleen Phillimore wrote:
>
> Well, historically the GC group has added this barrier code to the 
> interpreter, but I reviewed this change and it looks fine to me.
>
> I can do the checkin if someone else can review it.  Oh also, is there 
> a small jtreg test case that can be added for this?
>
> Thanks,
> Coleen
>
> On 04/16/2013 05: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