Request for review (m) - 8008508: CMS does not correctly reduce heap size after a Full GC

Jon Masamitsu jon.masamitsu at oracle.com
Wed Feb 20 05:29:02 UTC 2013


8008508: CMS does not correctly reduce heap size after a Full GC

http://cr.openjdk.java.net/~jmasa/8008508/webrev.00/

The CMS generation has a CompactibleFreeListSpace that describes
its part of the heap space.  The free space of a CompactibleFreeListSpace
is maintained in freelists and it is cannot shrink in the simple
the ContiguousSpaces shrink.  The exception is after a full GC when
all the free space in the CMS geneartion is in a single chunk at the
end of the CompactibleFreeListSpace. This change treats the free space
in the CMS generation like a ContiguousSpace and shrinks it using the
same policy as many of the other generations.

Move the method compute_new_size() from the TenuredGeneration into
the CardGeneration when it can be shared with the ConcMarkSweepGeneration.
Some associated variables are also moved.

Added a compute_new_space_free_list() and associated methods for
managing the size of the CompactibleFreeListSpace in the CMS generation.
The method shrink_free_list_by() still does not shrink the CMS generation.

Thanks.



More information about the hotspot-gc-dev mailing list