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

Kim Barrett kim.barrett at oracle.com
Mon Jun 4 18:31:53 UTC 2018


> On May 31, 2018, at 3:34 PM, Kim Barrett <kim.barrett at oracle.com> wrote:
> 
>> On May 31, 2018, at 4:41 AM, Stefan Johansson <stefan.johansson at oracle.com> wrote:
>> 
>> 
>> 
>> On 2018-05-30 19:33, Kim Barrett wrote:
>>> 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.
>>> CR:
>>> https://bugs.openjdk.java.net/browse/JDK-8203319
>>> Webrev:
>>> http://cr.openjdk.java.net/~kbarrett/8203319/open.00/
>> Looks good,
>> Stefan
> 
> Thanks, Stefan.

The new need_balance_queues function has an optimization to avoid
balancing in a case where we already know the queues are balanced.
This assumes it's being called for initial balancing after discovery,
and not for some re-balancing after a processing phase.  But that's
problematic for JDK-8043575 (recently RFR'ed).  And if we're already
balanced, balance_queues doesn't have very much to do.  (And
eventually the optimization would be rendered moot anyway, by the
elimination of balancing; see JDK-8202328.)  So I'm taking that bit out.

New webrevs:
full: http://cr.openjdk.java.net/~kbarrett/8203319/open.01/
incr: http://cr.openjdk.java.net/~kbarrett/8203319/open.01.inc/





More information about the hotspot-gc-dev mailing list