RFR(S) 8038412: Move object_iterate_careful down from Space to ContigousSpace and CFLSpace

Thomas Schatzl thomas.schatzl at oracle.com
Thu Mar 27 09:02:40 UTC 2014


Hi Mikael,

On Thu, 2014-03-27 at 09:56 +0100, Mikael Gerdin wrote:
> Hi Thomas,
> 
> On Thursday 27 March 2014 09.24.07 Thomas Schatzl wrote:
> > Hi Mikael,
> > 
> > On Wed, 2014-03-26 at 17:21 +0100, Mikael Gerdin wrote:
> > > Hi,
> > > 
> > > I'm doing some cleanups in the "Space" classes to simplify the code for
> > > the G1 class unloading work[1].
> > > Here's a change to move code only used for CMS from virtuals on Space to
> > > only be declared and defined where needed.
> > 
> >  some comments:
> > 
> >  - in ContiguousSpace, after moving object_iterate_careful(), the
> > comment "// iterates on objects up to the safe limit" seems to be
> > obsolete now since the new comment seems better.
> 
> Yes, I'll remove the obsolete comment.
> 
> > 
> >  - object_iterate_careful() seems to be only used by CFLSpace: why not
> > move it to compactibleFreeListSpace?
> > 
> > Actually everything that has to do with it
> > (concurrent_iteration_safe_limit(), oop_since_save_marks_iterate*, and a
> > lot of other code) seems to be specific to CMS.
> 
> CMS code is the only caller of object_iterate_careful, however it is invoked 
> on the spaces of the {Def,Par}NewGeneration, these are ContiguousSpaces and 
> need to provide this API for CMS.
> 
> > 
> > Are you going to merge this code with similar G1 code like
> > HeapRegion::object_iterate_*mem_*careful() later, so you kept this code
> > for now in ContiguousSpace?
> 
> object_iterate_careful needs to be in ContiguousSpace for the reasons I stated 
> above.
> 
> HeapRegion::object_iterate_mem_careful seems to only ever be used with 
> [bottom, top) but it actually also takes care to only look at objects which 
> are "live" according to G1's is_obj_dead. I have some ideas about how to solve 
> this but I'd like to leave this as is for now.

Thanks for the clarification. Then, with the removed comment, ship it.

Thomas





More information about the hotspot-gc-dev mailing list