Please review 6687581: Make CMS work with compressed oops

Vladimir Kozlov Vladimir.Kozlov at Sun.COM
Thu May 22 11:29:46 PDT 2008


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