Skip to content

Conversation

@shruacha1234
Copy link
Contributor

This PR integrates a more efficient selector path in AIX using PollsetSelector to improve overall system responsiveness. It addresses the reported performance issues and ensures stable operation under high load scenarios.

@pshipton
Copy link
Member

pshipton commented Dec 5, 2025

@pshipton
Copy link
Member

pshipton commented Dec 5, 2025

jenkins test sanity,sanity.system aix jdk11

@pshipton
Copy link
Member

pshipton commented Dec 5, 2025

jenkins compile xlinux,xmac,amac jdk11

@pshipton
Copy link
Member

pshipton commented Dec 5, 2025

@pshipton
Copy link
Member

pshipton commented Dec 5, 2025

Further testing in https://trssrtp1.fyre.ibm.com/resultSummary?parentId=69332b893f6dc49d2fb8e4b9

It's still running, but there is a stack overflow failure running renaissance-movie-lens_0, which I repeated in a grinder.
https://hyc-runtimes-jenkins.swg-devops.com/job/Test_openjdk11_j9_extended.perf_ppc64_aix/295/
https://hyc-runtimes-jenkins.swg-devops.com/job/Grinder/56743

The same test is passing with the previous nightly build.
https://hyc-runtimes-jenkins.swg-devops.com/job/Grinder/56744
also with the next nightly build, so it's not caused by some other change.
https://hyc-runtimes-jenkins.swg-devops.com/job/Grinder/56748

@shruacha1234 shruacha1234 force-pushed the PollsetSelectorImpl branch 2 times, most recently from 7ecd733 to 775e2a7 Compare December 8, 2025 05:51
@shruacha1234
Copy link
Contributor Author

jenkins compile xlinux jdk11

@sruthyjay sruthyjay force-pushed the PollsetSelectorImpl branch from 23cc4cc to 7db7191 Compare December 8, 2025 11:02
@Ravi-Patel8
Copy link

jenkins compile xlinux jdk11

@Ravi-Patel8
Copy link

jenkins compile xlinux,xmac,amac jdk11

@Ravi-Patel8
Copy link

Further testing in https://trssrtp1.fyre.ibm.com/resultSummary?parentId=69332b893f6dc49d2fb8e4b9

It's still running, but there is a stack overflow failure running renaissance-movie-lens_0, which I repeated in a grinder. https://hyc-runtimes-jenkins.swg-devops.com/job/Test_openjdk11_j9_extended.perf_ppc64_aix/295/ https://hyc-runtimes-jenkins.swg-devops.com/job/Grinder/56743

The same test is passing with the previous nightly build. https://hyc-runtimes-jenkins.swg-devops.com/job/Grinder/56744 also with the next nightly build, so it's not caused by some other change. https://hyc-runtimes-jenkins.swg-devops.com/job/Grinder/56748

@pshipton , the stack overflow failure appears to be a machine-specific issue. We’ve triggered the run on another machine and all tests are passing:
https://hyc-runtimes-jenkins.swg-devops.com/job/Grinder/56756/

@Ravi-Patel8
Copy link

@pshipton ,
I commented jenkins compile xlinux,xmac,amac jdk11 to validate if the xlinux failure. But seems the tests are not being run. Could you please check once?

@shruacha1234
Copy link
Contributor Author

@pshipton
I triggered the xlinux personal build with this patch, and it passed.
https://hyc-runtimes-jenkins.swg-devops.com/job/Build_JDK11_x86-64_linux_Personal/8088/

@pshipton
Copy link
Member

pshipton commented Dec 9, 2025

jenkins test sanity,sanity.system xlinux jdk11

@pshipton
Copy link
Member

pshipton commented Dec 9, 2025

Pls see the failures in https://trssrtp1.fyre.ibm.com/output/test?id=693375823f6dc49d2fbe7452

java/nio/channels/AsynchronousServerSocketChannel/WithSecurityManager.java
java/nio/channels/SocketChannel/OpenLeak.java

[2025-12-05T20:38:33.500Z] Caused by: java.security.AccessControlException: Access denied ("java.util.PropertyPermission" "java.nio.channels.spi.SelectorProvider" "read")
[2025-12-05T20:38:33.500Z] 	at java.base/java.security.AccessController.throwACE(AccessController.java:180)
[2025-12-05T20:38:33.500Z] 	at java.base/java.security.AccessController.checkPermissionHelper(AccessController.java:244)
[2025-12-05T20:38:33.500Z] 	at java.base/java.security.AccessController.checkPermission(AccessController.java:391)
[2025-12-05T20:38:33.500Z] 	at java.base/java.lang.SecurityManager.checkPermission(SecurityManager.java:322)
[2025-12-05T20:38:33.500Z] 	at java.base/java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1066)
[2025-12-05T20:38:33.500Z] 	at java.base/java.lang.System.getProperty(System.java:597)
[2025-12-05T20:38:33.500Z] 	at java.base/java.lang.System.getProperty(System.java:580)
[2025-12-05T20:38:33.500Z] 	at java.base/sun.nio.ch.PollsetSelectorFeature.pollsetEnabled(PollsetSelectorFeature.java:44)

java/nio/channels/SocketChannel/CloseDuringConnect.java failed with a timeout.

[2025-12-05T21:03:40.249Z] "InnocuousThread-3" prio=5 Id=30 RUNNABLE
[2025-12-05T21:03:40.249Z] 	at [email protected]/sun.nio.ch.AixPollPort.pollsetPoll(Native Method)
[2025-12-05T21:03:40.249Z] 	at [email protected]/sun.nio.ch.AixPollPort$EventHandlerTask.poll(AixPollPort.java:328)
[2025-12-05T21:03:40.249Z] 	at [email protected]/sun.nio.ch.AixPollPort$EventHandlerTask.run(AixPollPort.java:425)
[2025-12-05T21:03:40.249Z] 	at [email protected]/sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)

@pshipton
Copy link
Member

pshipton commented Dec 9, 2025

Further xlinux testing in https://trssrtp1.fyre.ibm.com/resultSummary?parentId=6938542a3e3bd23d4c2afa4b

The same failures as #1000 (comment) plus others in the next comment.

@shruacha1234 shruacha1234 force-pushed the PollsetSelectorImpl branch 3 times, most recently from d51680e to b4a4bd0 Compare December 10, 2025 10:13
@pshipton
Copy link
Member

pshipton commented Dec 10, 2025

There are some additional failures on xlinux.

java/nio/channels/spi/SelectorProvider/inheritedChannel/InheritedChannelTest.java - timeout
java/nio/channels/AsyncCloseAndInterrupt.java - timeout/hang

…tion

This change brings the PollsetSelector implementation to address the
performance degradation reported by a customer. The new implementation
reduces thread stalls and CPU spikes by improving event handling.
Validated with customer workloads showing full performance recovery.

Signed-off-by: Shruthi <[email protected]>
@shruacha1234
Copy link
Contributor Author

@pshipton
I have addressed the failures you mentioned and rerun the jdk_net, java_io, and java_nio tests for AIX. All of them are passing now.
https://hyc-runtimes-jenkins.swg-devops.com/job/Grinder_CR/49937/

17:11:31  TEST TARGETS SUMMARY
17:11:31  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
17:11:31  PASSED test targets:
17:11:31  	jdk_io_0 - Test results: passed: 362 
17:11:31  	jdk_io_1 - Test results: passed: 362 
17:11:31  	jdk_net_0 - Test results: passed: 723 
17:11:31  	jdk_net_1 - Test results: passed: 723 
17:11:31  	jdk_nio_0 - Test results: passed: 383 
17:11:31  	jdk_nio_1 - Test results: passed: 383 
17:11:31  
17:11:31  TOTAL: 9   EXECUTED: 6   PASSED: 6   FAILED: 0   SKIPPED: 3
17:11:31  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
17:11:31  
17:11:31  TESTCASES RESULTS SUMMARY: passed: 2,936; failed: 0; error: 0; skipped: 0
17:11:31  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
17:11:31  ALL TESTS PASSED

private final SelChImpl channel;
private final SelectorImpl selector;
protected final SelChImpl channel;
public final SelectorImpl selector;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pls add a public access for this rather than making the variable public.


private final SelChImpl channel;
private final SelectorImpl selector;
protected final SelChImpl channel;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is a public accessor for this, why does it need to be protected?

{
// The set of keys registered with this Selector
private final Set<SelectionKey> keys;
protected final Set<SelectionKey> keys;
Copy link
Member

@pshipton pshipton Dec 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do these need to be protected? This and selectedKeys.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants