RFR: 8079275: Remove CollectedHeap::use_parallel_gc_threads

Stefan Karlsson stefan.karlsson at oracle.com
Mon May 4 13:34:13 UTC 2015


Hi,

Please review this patch to remove CollectedHeap::use_parallel_gc_threads.

http://cr.openjdk.java.net/~stefank/8079275/webrev.01/
https://bugs.openjdk.java.net/browse/JDK-8079275

This function is used from:

1) CMS - CMS can't be started with -XX:ParallelGCThreads=0 anymore, so 
all checks against use_parallel_gc_threads will always be true.

2) GenCollectedHeap::process_roots - This usage could be replaced with 
n_par_threads(), the same check the other parallel task 
(Threads::possibly_parallel_oops_do) uses.

This will change the executed code for CMS but not Serial.

Serial will always return false for 
CollectedHeap::use_parallel_gc_threads and 
GenCollectedHeap:n_par_threads(). See:
void GenCollectedHeap::set_par_threads(uint t) {
   assert(t == 0 || !UseSerialGC, "Cannot have parallel threads");
   CollectedHeap::set_par_threads(t);

CMS will always return true for CollectedHeap::use_parallel_gc_threads, 
but can now return either true or false for n_par_threads() depending on 
how n_par_threads was setup for the currently executing task. This means 
that some CMS paths will now call StringTable::oops_do instead of 
StringTable::possibly_parallel_oops_do, when running single threaded.

Thanks,
StefanK



More information about the hotspot-gc-dev mailing list