RFR: 8203319: JDK-8201487 disabled too much queue balancing

Kim Barrett kim.barrett at oracle.com
Thu May 31 19:33:53 UTC 2018

> On May 30, 2018, at 7:57 PM, Kim Barrett <kim.barrett at oracle.com> wrote:
>> On May 30, 2018, at 1:49 PM, Thomas Schatzl <thomas.schatzl at oracle.com> wrote:
>> On Wed, 2018-05-30 at 13:33 -0400, Kim Barrett wrote:
>>> I tried to write a test directed at the problematic cases, but
>>> couldn't find a way to produce a setup with
>>> 1 < # of processing threads < # of discovery theads
>>> In particular, a configuration with ParallelGCThreads < ConcGCThreads
>>> is disallowed by option checking, so the VM won't even start with
>>> such a configuration.  So it seems the problematic cases described in
>>> the bug report can't currently arise in practice.  
>> Due to UseDynamicNumberOfGCThreads the number of active threads for the
>> work queue may be < ConcGCThreads. Just run on a small heap (iirc it
>> selects 1 thread per 32MB of heap) on a large machine.
> I was able to produce some pretty stupid configurations, using -XX:+ForceDynamicNumberOfGCThreads.
> But I wasn’t able to get the number of marking (discovery) threads to be lower than the
> number of reference processing threads.  If the heap is small the number of marking
> threads will be kept small too.

I patched the VM to allow ConcGCThreads > ParallelGCThreads and verified
balancing was being triggered even with ParallelRefProcBalancingEnabled turned off,
as desired.

More information about the hotspot-gc-dev mailing list