Re: RFR: 8373118: Test java/lang/Thread/virtual/Starvation.java timed out [v20]

2026-01-08 Thread Doug Lea
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]

2026-01-08 Thread Doug Lea
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]

2026-01-07 Thread Viktor Klang
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]

2026-01-07 Thread Viktor Klang
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]

2026-01-07 Thread Viktor Klang
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]

2026-01-06 Thread Doug Lea
> 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