RFR: 8336707: Contention of ForkJoinPool grows when stealing works [v2]
Viktor Klang
vklang at openjdk.org
Fri Oct 18 15:52:15 UTC 2024
On Fri, 18 Oct 2024 15:18:12 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 incrementally with one additional commit since the last revision:
>
> Better disinguish need for exhaustive scans
src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java line 2006:
> 2004: if ((!propagated ||
> 2005: ((j & 1) == 0) && t instanceof
> 2006: ForkJoinTask.InterruptibleTask) &&
It's probably premature, but given that all subclasses of InterruptibleTask are final, and that InterruptibleTask is abstract, it _might_ be cheaper to check `t.getClass().getSuperClass() == ForkJoinTask.InterruptibleTask.class`? 🤔
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/21507#discussion_r1806709142
More information about the core-libs-dev
mailing list