Request for review (S): 6627787, 6896099, 7000125: CMS heap sizing (1 RFE, 2 Bugs)

Y. S. Ramakrishna y.s.ramakrishna at oracle.com
Tue Mar 15 18:12:44 UTC 2011


Thanks for the review, Poonam.

On 03/14/11 23:41, Poonam Bajaj wrote:
> Hi Ramki,
> 
> Thanks for improving the GC logging with these changes.
> 
> What is the reason behind choosing 16M for sparc and 64M for x86 systems 
> as the default value for CMSYoungGenPerWorker ?

This should ideally be keyed off of the "speed" of a single strand or
virtual processor of the undrelying platform, but this will have
to do for now. The intent is to limit the GC pause for copying
the survivors during a scavenge, and thus the scavenge pause.

thanks.
-- ramki

> 
> Thanks,
> Poonam
> 
> On 3/15/2011 7:37 AM, Y. Srinivas Ramakrishna wrote:
>> (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
>> quite obsolete.
>>
>> 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.
>>
>> Webrev: 
>> http://cr.openjdk.java.net/~ysr/6627787_6896099_7000125/webrev.01/
>>
>> This contains changes following one internal review (thanks Bengt 
>> Rutisson!),
>> but if anyone else has further feedback, please let me know.
>>
>> thanks!
>> -- ramki
> 
> -- 
> Best regards, Poonam
> 
> Sun, an Oracle company
> Sun, an Oracle Company
> Poonam Bajaj | Staff Engineer
> Phone: +66937451 <tel:+66937451> | Mobile: +9844511366 <tel:+9844511366>
> JVM Sustaining Engineering
> | Bangalore
> Green Oracle <http://www.oracle.com/commitment> Oracle is committed to 
> developing practices and products that help protect the environment
> 



More information about the hotspot-gc-dev mailing list