RFR(S): 7120038: G1: ParallelGCThreads==0 is broken

John Cuthbertson john.cuthbertson at oracle.com
Tue Dec 13 19:41:27 UTC 2011

Hi Vladimir,

The JVM currently allows the flag. When specified, the VM thread (only) 
executes the GC code during STW GCs - including code that would normally 
be executed by the parallel worker threads. This is slightly different 
from when -XX:ParallelGCThreads=1- which creates a single GC worker 
thread; this single worker executes the parallel code. I have found that 
specifying PGCT=0 has been useful during bug triaging.


On 12/13/11 11:12, Vladimir Ivanov wrote:
> John,
> Can you elaborate what is the use case for ParallelGCThreads==0?
> Why don't we simply abort execution during startup when
> -XX:ParallelGCThreads=0 is passed on command line?
> Best regards,
> Vladimir Ivanov
> On 12/13/11 21:54, John Cuthbertson wrote:
>> Hi Everyone,
>> While testing the changes for 7119908 I discovered that running G1 with
>> ParallelGCThreads=0 is broken. Can I have a couple of volunteers look
>> over the changes fix the issues I discovered? The webrev can be found
>> at: http://cr.openjdk.java.net/~johnc/7120038/webrev.0/.
>> Most of the changes are correcting unguarded references to the work gang
>> (which is not created when PGCT==0) and a few assertion failures.
>> Note: we do have an open RFE to remove code specific to PGCT==0 as it is
>> not a typical configuration, but until then...
>> Testing: GC test suite with/without -XX:ParallelGCThreads=0,
>> Kitchensink, jprt.
>> Thanks,
>> JohnC

More information about the hotspot-gc-dev mailing list