Will GC lose some locking infomation during compaction?

Colin(Du Li) dawn2004 at gmail.com
Mon Apr 20 01:16:15 PDT 2009

Hello, I still have a question.
Let's say, during compaction, GC moves an object from "old Location" to "new
location"(compaction top).
Yes, during the marking phase we evacuated these "non-prototypical" mark
words into a pair of buffers,  and used later to restore the evacuated mark
But GC only restores mark word on object at "old Location", why don't it
restore mark word on object at "new location"?

Thanks a lot!

Y. Srinivas Ramakrishna wrote:
> init_mark() sets the mark-word into a "prototypical" state, and this 
> suffices, as you surmised,
> for the large majority of objects but not for all, namely for locked 
> objects, biased objects and
> those whose hashcodes have been computed.
> Recall, however, that during the marking phase the we evacuated thse
> "non-prototypical" mark words into a pair of buffers. These spooled 
> mark-words
> are used later to restore the evacuated mark words. Look for 
> "should_preserve_mark_word()"
> or similar (I do not have a workspace handy to get you the exact name).
> -- ramki
> Colin(Du Li) wrote:
>> Hello.
>> I have two questions about GC's compaction phase.
>> 1. During the compaction, after GC copies a compacted object to the its
>> location, it always calls "init_mark" on this object. I think "init_mark"
>> will cause the object to be "unlocked". If the object is "locked" before
>> compaction, will the locking information be lost after compaction?
>> 2. If the compacted object has enter a monitor (using "moniterenter"), GC
>> moves it to new location, then how can GC update the monitor?
>> Thanks a lot!
>> Colin

View this message in context: http://www.nabble.com/Will-GC-lose-some-locking-infomation-during-compaction--tp23063420p23132238.html
Sent from the OpenJDK Hotspot Virtual Machine mailing list archive at Nabble.com.

More information about the hotspot-dev mailing list