Integration of ParralellGC and CMS

Clemens Eisserer linuxhippy at gmail.com
Thu Jan 27 13:39:15 UTC 2011


Hi Jon,

> Generally CMS fights fragmentation by a STW compaction.  Doing a MT version
> of that would be the integration of ParallelOldGC into CMS which was your
> first
> question.  But perhaps that's not what you meant.

Right, as you suggested what I ment was multithreaded, incremental stw
compaction.
I think the integration of ParallelOldGC into CMS would be a too
complex task for me, after all the whole gc code is completly new to
me.

> A complete
> marking of the live data would be needed for the increment of the
> compaction.  But you'd only need to do the actual compaction (moving
> data and adjusting pointers) on part of the old gen.

If the stw compaction phase would be executed after a "normal" CMS
run, couldn't the marking results of the concurrent marking phase be
used? All created objects since then could be simply treated as alive.
Probably moving all objects (live or dead) would be an option too, but
of course would mean more work and worse compaction.

> Look at the
> serial old gen collector if you're interested in this.  The ParallelOldGC
> will be somewhat more complicated.  We're not particularly
> interested in it because that's what G1 does.

Hmm, if it would work well and the code would be clean, small and
maintainable  - would there be a chance for integration?
I asked here, because it would be great if the stuff i produce during
working on a master thesis could be useful ;)

Thanks, Clemens



More information about the hotspot-gc-dev mailing list