Request for review (S): 6627787, 6896099, 7000125: CMS heap sizing (1 RFE, 2 Bugs)
Y. Srinivas Ramakrishna
y.s.ramakrishna at oracle.com
Mon Mar 14 19:07:08 PDT 2011
(bug) 6627787: CMS: JVM refuses to start up with -Xms16m -Xmx16m
(RFE) 6896099: Integrate CMS heap ergo with default heap sizing ergo
(bug) 7000125: CMS: Anti-monotone young gen sizing with respect to maximum whole heap size specification
Problem: CMS heap sizing does not make use of server/client heap sizing
ergo, mainly because it wants to keep maximum gc pauses somewhat
under control rather than necessarily sizing for throughput.
There have been many changes and small tweaks over the years
in this code and it has collected a lot of unnecessary settings
which also conflict with the sizing decisions being made
elsewhere in the heap sizing/policy subsystem, resulting,
for example, in the two bugs in the list of CR's above.
Solution: Allow CMS to make use of server/client heap sizing
ergonomics, just like all the other collectors, while keeping the
young generation small enough so as to keep pause times
reasonable. One of these required a CPU-specific default.
Jettison old settings and flags specific to use in JDK 6
to preserve JDK 5 like CMS settings, which are now considered
Since the fixes for the two defects and the one RFE were
entangled, it made sense to fix them all in one changeset.
Testing: internal reference workloads to assess the changes
from current settings, and to ensure that gc pauses are
still "reasonable" with the newer default settings.
The command-lines in the two bugs to verify that the
sizing anomalies are no longer present.
This contains changes following one internal review (thanks Bengt Rutisson!),
but if anyone else has further feedback, please let me know.
More information about the hotspot-gc-dev