RFR: 8336707: Contention of ForkJoinPool grows when stealing works [v21]
Viktor Klang
vklang at openjdk.org
Mon Nov 11 15:15:19 UTC 2024
On Sun, 10 Nov 2024 17:51:43 GMT, Doug Lea <dl at openjdk.org> wrote:
>> This addresses tendencies in previous update to increase fencing, scanning, and signalling that can increase contention, and slow down performance especially on ARM platforms. It also uses more ARM-friendly constructions to reduce overhead (leading to several changes that all of the same form),
>
> Doug Lea has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 40 additional commits since the last revision:
>
> - Merge branch 'openjdk:master' into JDK-8336707
> - Minor improvements
> - Merge branch 'openjdk:master' into JDK-8336707
> - Add CLEANED runState
> - Merge branch 'openjdk:master' into JDK-8336707
> - More shutdown streamlining
> - Don't report termination while cancellations in progress
> - Reduce read contention
> - Merge branch 'openjdk:master' into JDK-8336707
> - Reduce shutdown overhead and contention
> - ... and 30 more: https://git.openjdk.org/jdk/compare/c6713e65...4db28137
src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java line 414:
> 412: * roles, as lockable, versioned counters. Field runState also
> 413: * includes monotonic event bits (SHUTDOWN, STOP, CLEANED (when
> 414: * all queues are knowm to be empty after stopping) and
Suggestion:
* all queues are known to be empty after stopping) and
src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java line 662:
> 660: * tasks until runState is marked as CLEANED (staggering queues
> 661: * and backing off on interference to avoid contention while doing
> 662: * so-- see method cleanQueues). These actions race with
Suggestion:
* so--see method cleanQueues). These actions race with
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/21507#discussion_r1836824631
PR Review Comment: https://git.openjdk.org/jdk/pull/21507#discussion_r1836828143
More information about the core-libs-dev
mailing list