RFR 8042668: GC Support for shared heap ranges in CDS (RE: JDK-8059092)

Jiangli Zhou jiangli.zhou at oracle.com
Thu Jun 4 22:22:06 UTC 2015

Hi Thomas and Tom,

Would it be better to handle the refactoring as a separate incremental change on top of the current one? The change for supporting shared strings is pretty large already. It would be helpful some of the enhancement/improvement could be implemented and addressed as separate smaller tasks.


> >   - the code from 1017 to 1035 seems to be best placed as some
> > utility method in HeapRegionManager. HeapRegionManager::at_or_null()
> > leaks details about internal region organization to G1CollectedHeap.
> > It would also allow iteration over the "heap region array", which is
> > an implementation detail of HeapRegionManager (which is, what the
> > most recent huge changes to region management explicitly tried to
> > make impossible).
> >   - HeapRegionManager::addr_to_index(): the code should use the
> > HeapRegion*'s hrm_index() getter to retrieve the region's index if
> > required. The HeapRegionManager should expose as little as possible
> > details, including that the regions are consecutive. Not sure about
> > this. I mean it's nice to have, but not necessary at all.
> > Removing it would (I think) also remove the need for the ugly change
> > in G1BiasedMappedArray.
> I think the re-factoring suggested here will take a little more thought.
> Part of it could be done entirely in HeapRegionManager, but I think some
> needs to be in G1CollectHeap.  I think this may generate more discussion,
> so I'll post a separate reply.

More information about the hotspot-gc-dev mailing list