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

Kim Barrett kim.barrett at oracle.com
Wed May 30 17:33:34 UTC 2018

Please review this change to the ReferenceProcessor's test for whether
to balance a set of queues before processing them with multiple
threads.  The change to that test made by JDK-8201487 doesn't peform
balancing for some (potential, see Testing below) states where not
doing so will result in some discovered References not being
processed.  In particular, there are cases where we must ignore
-XX:-ParallelRefProcBalancingEnabled and balance anyway.

We also now avoid balancing in some cases where we know the set is
already balanced, even with -XX:+ParallelRefProcBalancingEnabled.



Mach5 tier{1,2,3}, hs-tier{4,5}

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.  However, that will
change with JDK-8043575, where a reduced number of processing threads
may be selected.

More information about the hotspot-gc-dev mailing list