Please review 6687581: Make CMS work with compressed oops

Coleen Phillimore - Sun Microsystems Coleen.Phillimore at Sun.COM
Thu May 22 11:28:12 PDT 2008


Thanks Vladimir.  The tlab_refill method in the assemblers are creating 
a typeArrayOop, so are storing the length into the klass gap (ie there's 
only a klass gap for instanceOops which would be useful to assert for).  
I think it was wrong before and we were writing over the length on one 
of the platforms.

Coleen

Vladimir Kozlov wrote:
> Coleen,
>
> I looked on all changes except GC changes.
> In assembler_sparc.cpp and assembler_x86_64.cpp
> the method store_klass() is called from tlab_refill() method.
> You may need to call store_klass_gap() there to zero the gap.
>
> Other changes looks good.
>
> Thanks,
> Vladimir
>
> Coleen Phillimore - Sun Microsystems wrote:
>>
>> Please email your comments to me regarding this bug fix, described 
>> below:
>>
>> Fixed 6687581: Make CMS work with compressed oops
>>
>> Make FreeChunk read markword instead of LSB in _klass pointer to 
>> indicate that it's a FreeChunk for compressed oops.  Moved the size 
>> field first so that it is used consistently for 64 bits w/out 
>> compressed oops, and 32 bits to reduce ifdefs.
>>
>> Also needed to change set_klass to not zero the gap since CMS uses 
>> this to copy objects.  Decoupled set_klass and set_klass_gap in the 
>> case of compressed oops.
>>
>> Changed FreeChunk and associated code in SA.
>>
>> Performance results looked very good(not provided). Thanks to jmasa 
>> and ramki for their analysis, discussion of the change and prereview.
>>
>> Webrev:  http://webrev.invokedynamic.info/coleenp/6687581/
>> Fix verified: y
>> Testing:  nsk stress, sajdi and my sanity testlists with 
>> CMS+compressedoops.
>>          runthese
>>          refworkload/GCOld
>> Reviewed-by: <your name here>



More information about the hotspot-runtime-dev mailing list