Request for review (S): 8005396: Use ParNew with only one thread instead of DefNew as default for CMS on single CPU machines

Bengt Rutisson bengt.rutisson at oracle.com
Fri Dec 21 05:42:40 PST 2012


Hi All,

Can I have a couple of reviews for this change?

http://cr.openjdk.java.net/~brutisso/8005396/webrev.00/

Currently we use ParNew as default for the young generation when CMS is 
selected. But if the machine only has a single CPU we set the 
ParallelGCThreads to 0 and and select DefNew instead of ParNew.

As part of another change, 8003820, we will deprecate the DefNew + CMS 
combination. Thus, it does not make sense anymore to have this selected 
by default. This fix is to make CMS always pick ParNew by default.

The change also has the side effect that the, in my opinion, rather 
strange behavior that setting ParallelGCThreads=0 on the command line 
overrides the GC choice. I would expect this command line to give me 
ParNew, but it actually gives me DefNew:

-XX:+UseParNewGC -XX:ParallelGCThreads=0

After my proposed change you get ParNew with the above command line.

I have done some performance testing to verify that ParNew with one 
thread is not slower than DefNew. The details are in the bug report:

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8005396

but as a summary it can be said that there is no noticeable difference.

I am also running some more SPECjbb2005 runs and will analyze the gc times.

Thanks,
Bengt


More information about the hotspot-gc-dev mailing list