RFR: 8336707: Contention of ForkJoinPool grows when stealing works

Viktor Klang vklang at openjdk.org
Fri Oct 18 12:51:09 UTC 2024


On Fri, 18 Oct 2024 12:32:21 GMT, Doug Lea <dl at openjdk.org> wrote:

>> src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java line 1287:
>> 
>>> 1285:             if (!internal)
>>> 1286:                 unlockPhase();
>>> 1287:             if ((room == 0 || U.getReference(a, pk) == null) && pool != null)
>> 
>> We used to look at `- 2` but now we look at `- 1`, perhaps that could account for stalls?
>
> Well, the interplay of signal rules in push, runWorker, and deactivate lead to under/over signalling, scanning, contention. I'm about to commit a different tactic.

Ok, staying tuned!

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/21507#discussion_r1806440304


More information about the core-libs-dev mailing list