On Mon, 11 Nov 2024 16:01:08 GMT, Doug Lea <d...@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 incrementally with two additional > commits since the last revision: > > - Merge remote-tracking branch 'refs/remotes/origin/JDK-8336707' into > JDK-8336707 > - Reconcile internal docs; renamings
src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java line 417: > 415: * * STOP: no more tasks run, and deregister all workers > 416: * * CLEANED: all unexecuted tasks have been cancelled > 417: * * TERMINATED: all qorkers deregistered and all queues cleaned Suggestion: * * TERMINATED: all workers deregistered and all queues cleaned src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java line 663: > 661: * * A call to shutdownNow, in which case all workers are > 662: * interrupted. ensuring that the queues array is stable, > 663: * so will not miss any of them. Suggestion: * interrupted, and ensuring that the array of queues is stable, * so will not miss any of them. src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java line 676: > 674: * cancel (benefitting from parallelism) versus contention and > 675: * interference when many threads try to poll remaining queues, > 676: * while also avoiding unnecessary rechedcks, by using Suggestion: * while also avoiding unnecessary rechecks, by using src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java line 688: > 686: * before executing task bodies, and ensures interrupts while > 687: * terminating. Even so, there are no guarantees because tasks may > 688: * internally enter unbounded loops. Good point to make src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java line 874: > 872: * cancellation by others, which can occur along several different > 873: * paths. The inability to rely on caller-runs may also require > 874: * extra signalling (and resulting scanning and contention) so is Suggestion: * extra signalling (resulting in increased scanning and contention) so is ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/21507#discussion_r1836899379 PR Review Comment: https://git.openjdk.org/jdk/pull/21507#discussion_r1836903791 PR Review Comment: https://git.openjdk.org/jdk/pull/21507#discussion_r1836908015 PR Review Comment: https://git.openjdk.org/jdk/pull/21507#discussion_r1836908858 PR Review Comment: https://git.openjdk.org/jdk/pull/21507#discussion_r1836910984