Re: RFR: 8373118: Test java/lang/Thread/virtual/Starvation.java timed out [v20]
On Wed, 7 Jan 2026 15:07:41 GMT, Viktor Klang wrote:
>> src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java line 1969:
>>
>>> 1967: }
>>> 1968: else if (q.base == b &&
>>> 1969: U.compareAndSetReference(a, bp,
>>> t, null)) {
>>
>> Would we expect a[bp] to be possible to be something besides `t` or `null`
>> here? If not, I think we could switch to a `U.getAndSetReference(a, bp,
>> null) == t` here?
>
> Narrator: it won't work since there might be other values than `t` and `null`
Right. I once tried to use anyway and cope with unexpected but the overhead for
doing it not worth it.
-
PR Review Comment: https://git.openjdk.org/jdk/pull/28797#discussion_r2673026294
Re: RFR: 8373118: Test java/lang/Thread/virtual/Starvation.java timed out [v20]
On Wed, 7 Jan 2026 13:40:53 GMT, Viktor Klang wrote: >> 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 28 additional commits >> since the last revision: >> >> - Merge branch 'openjdk:master' into JDK-8373118 >> - Split external push >> - Undo/redo ordering changes >> - Strengthen some orderings >> - Merge branch 'openjdk:master' into JDK-8373118 >> - Not sure why this merge is necessary >>Merge remote-tracking branch 'refs/remotes/origin/JDK-8373118' into >> JDK-8373118 >> - Merge branch 'openjdk:master' into JDK-8373118 >> - Fix deactivate; faster quiescence >> - recheck avoiding cross-class offsets >> - Merge branch 'openjdk:master' into JDK-8373118 >> - ... and 18 more: https://git.openjdk.org/jdk/compare/c4c1e578...54a8672a > > src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java line 1955: > >> 1953: break scan; >> 1954: if (U.getReference(a, np) == null >> && >> 1955: (rescans >= 0 || > > `rescans` cannot be > 0 here given > https://github.com/openjdk/jdk/pull/28797/changes#diff-e398beb49cd8d3e6c2f3a8ca8eee97172c57d7f88f3ccd8a3c704632cab32f5fR1952 > > Suggestion: > > (rescans == 0 || Sorry for some transient noise in that commit! - PR Review Comment: https://git.openjdk.org/jdk/pull/28797#discussion_r2673031703
Re: RFR: 8373118: Test java/lang/Thread/virtual/Starvation.java timed out [v20]
On Wed, 7 Jan 2026 13:44:53 GMT, Viktor Klang wrote:
>> 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 28 additional commits
>> since the last revision:
>>
>> - Merge branch 'openjdk:master' into JDK-8373118
>> - Split external push
>> - Undo/redo ordering changes
>> - Strengthen some orderings
>> - Merge branch 'openjdk:master' into JDK-8373118
>> - Not sure why this merge is necessary
>>Merge remote-tracking branch 'refs/remotes/origin/JDK-8373118' into
>> JDK-8373118
>> - Merge branch 'openjdk:master' into JDK-8373118
>> - Fix deactivate; faster quiescence
>> - recheck avoiding cross-class offsets
>> - Merge branch 'openjdk:master' into JDK-8373118
>> - ... and 18 more: https://git.openjdk.org/jdk/compare/206410fe...54a8672a
>
> src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java line 1969:
>
>> 1967: }
>> 1968: else if (q.base == b &&
>> 1969: U.compareAndSetReference(a, bp,
>> t, null)) {
>
> Would we expect a[bp] to be possible to be something besides `t` or `null`
> here? If not, I think we could switch to a `U.getAndSetReference(a, bp, null)
> == t` here?
Narrator: it won't work since there might be other values than `t` and `null`
-
PR Review Comment: https://git.openjdk.org/jdk/pull/28797#discussion_r2668836812
Re: RFR: 8373118: Test java/lang/Thread/virtual/Starvation.java timed out [v20]
On Tue, 6 Jan 2026 22:52:57 GMT, Doug Lea wrote:
>> Changes signal filtering to avoid possible starvation
>
> 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 28 additional commits since
> the last revision:
>
> - Merge branch 'openjdk:master' into JDK-8373118
> - Split external push
> - Undo/redo ordering changes
> - Strengthen some orderings
> - Merge branch 'openjdk:master' into JDK-8373118
> - Not sure why this merge is necessary
>Merge remote-tracking branch 'refs/remotes/origin/JDK-8373118' into
> JDK-8373118
> - Merge branch 'openjdk:master' into JDK-8373118
> - Fix deactivate; faster quiescence
> - recheck avoiding cross-class offsets
> - Merge branch 'openjdk:master' into JDK-8373118
> - ... and 18 more: https://git.openjdk.org/jdk/compare/35f1afff...54a8672a
src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java line 1969:
> 1967: }
> 1968: else if (q.base == b &&
> 1969: U.compareAndSetReference(a, bp, t,
> null)) {
Would we expect a[bp] to be possible to be something besides `t` or `null`
here? If not, I think we could switch to a `U.getAndSetReference(a, bp, null)
== t` here?
-
PR Review Comment: https://git.openjdk.org/jdk/pull/28797#discussion_r2668520485
Re: RFR: 8373118: Test java/lang/Thread/virtual/Starvation.java timed out [v20]
On Tue, 6 Jan 2026 22:52:57 GMT, Doug Lea wrote: >> Changes signal filtering to avoid possible starvation > > 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 28 additional commits since > the last revision: > > - Merge branch 'openjdk:master' into JDK-8373118 > - Split external push > - Undo/redo ordering changes > - Strengthen some orderings > - Merge branch 'openjdk:master' into JDK-8373118 > - Not sure why this merge is necessary >Merge remote-tracking branch 'refs/remotes/origin/JDK-8373118' into > JDK-8373118 > - Merge branch 'openjdk:master' into JDK-8373118 > - Fix deactivate; faster quiescence > - recheck avoiding cross-class offsets > - Merge branch 'openjdk:master' into JDK-8373118 > - ... and 18 more: https://git.openjdk.org/jdk/compare/54191738...54a8672a src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java line 1955: > 1953: break scan; > 1954: if (U.getReference(a, np) == null && > 1955: (rescans >= 0 || `rescans` cannot be > 0 here given https://github.com/openjdk/jdk/pull/28797/changes#diff-e398beb49cd8d3e6c2f3a8ca8eee97172c57d7f88f3ccd8a3c704632cab32f5fR1952 Suggestion: (rescans == 0 || - PR Review Comment: https://git.openjdk.org/jdk/pull/28797#discussion_r2668506696
Re: RFR: 8373118: Test java/lang/Thread/virtual/Starvation.java timed out [v20]
> Changes signal filtering to avoid possible starvation 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 28 additional commits since the last revision: - Merge branch 'openjdk:master' into JDK-8373118 - Split external push - Undo/redo ordering changes - Strengthen some orderings - Merge branch 'openjdk:master' into JDK-8373118 - Not sure why this merge is necessary Merge remote-tracking branch 'refs/remotes/origin/JDK-8373118' into JDK-8373118 - Merge branch 'openjdk:master' into JDK-8373118 - Fix deactivate; faster quiescence - recheck avoiding cross-class offsets - Merge branch 'openjdk:master' into JDK-8373118 - ... and 18 more: https://git.openjdk.org/jdk/compare/c03fedf9...54a8672a - Changes: - all: https://git.openjdk.org/jdk/pull/28797/files - new: https://git.openjdk.org/jdk/pull/28797/files/2a580747..54a8672a Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=28797&range=19 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=28797&range=18-19 Stats: 16606 lines in 472 files changed: 3328 ins; 1877 del; 11401 mod Patch: https://git.openjdk.org/jdk/pull/28797.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/28797/head:pull/28797 PR: https://git.openjdk.org/jdk/pull/28797
