RFR: 8374170: I/O Poller updates [v2]
Michael McMahon
michaelm at openjdk.org
Fri Feb 6 08:55:27 UTC 2026
On Thu, 5 Feb 2026 15:23:31 GMT, Alan Bateman <alanb at openjdk.org> wrote:
>> The I/O Poller used to support virtual threads doing blocking networking I/O has been significantly refactored in the loom repo. There are several improvements that should be brought to main line:
>>
>> 1. New poller mode that uses a read poller per carrier, this is beneficial in some workloads.
>> 2. Better cleanup/recovery in the event if a file descriptor or memory can't be allocated during initializatio.
>> 3. NativeThread changed to cache native thread ID and avoid JNI call to current0 for each blocking I/O op.
>>
>> The changes have been in the loom repo for a long time, this is why the copyright header is updated to 2025 (not 2026) in some cases.
>>
>> Testing: tier1 + tier2.
>
> Alan Bateman 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 16 additional commits since the last revision:
>
> - Avoid needless dup2 when there are no platform threads blocked on fd
> - Merge branch 'master' into JDK-8374170
> - Merge branch 'master' into JDK-8374170
> - pollset -> setid
> - Pull update PollsetPoller update from loom repo
> - Merge branch 'master' into JDK-8374170
> - Merge branch 'master' into JDK-8374170
> - Merge branch 'master' into JDK-8374170
> - Merge branch 'master' into JDK-8374170
> - Merge branch 'master' into JDK-8374170
> - ... and 6 more: https://git.openjdk.org/jdk/compare/fa041031...76e7d498
The implementation looks good to me. I wonder should some of the existing tests like BlockingChannelOps.java be updated to also run in pollerMode=3?
-------------
PR Review: https://git.openjdk.org/jdk/pull/29195#pullrequestreview-3761623879
More information about the net-dev
mailing list