-
Notifications
You must be signed in to change notification settings - Fork 777
Support using threadStatus field in JVM native #21043
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
6528e33 to
aa845d1
Compare
|
Personal test build on JDK 8 & 21 |
|
@babsingh can you please take a look |
babsingh
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changes LGTM functionally. Minor nits.
For JDK21+, the j.l.Thread implementation is different. Have you opened the extension repo PRs? Will we need to coordinate the merge between this PR and the extension repo PRs?
Which JDK versions (11,17,21) and test suites (sanity.functional,sanity.openjdk) have you used to test these changes in your personal build?
|
Can you also squash the commits and link this PR to the following perf issue: #17251? |
|
@gacholio Can you also review these changes? |
Yes, I've opened PR for 21 & JDK next, see PR referenced above. will also include the link in PR description.
Testing have been done for 8,11,21 with sanity.functional & sanity.openjdk on xlinux |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good as far as it goes. We should attempt to transition to using the state field everywhere instead of attempting to derive it from various other states and bits (in a future PR).
|
Please squash the commits. |
|
I've created the extension change for JDK24, will test removing the sync block in JDK21+ locally to see if it is still needed after the started check have been moved before checking eetop |
|
Beware the possibility of out-of-order memory operations. |
cd71984 to
09b5f25
Compare
|
squashed commits, updated extension changes |
|
|
done |
|
jenkins test sanity.openjdk,sanity.functional plinux jdk11 |
|
jenkins test sanity.openjdk,sanity.functional zlinux jdk21 depends ibmruntimes/openj9-openjdk-jdk21#246 |
|
jenkins test sanity.openjdk,sanity.functional zlinux jdk24 depends ibmruntimes/openj9-openjdk-jdk24#18 |
|
Jenkins compile win jdk17 |
|
windows failure due to U_64 / U_32 conversion, will update |
cf021b8 to
15e11f3
Compare
|
@fengxue-IS what's happening with this? |
|
This is blocking ibmruntimes/openj9-openjdk-jdk#927 which is needed to fix https://github.ibm.com/runtimes/openj9-openjdk-jdk21-zos/issues/522 which is marked as must fix. |
ff284ef to
01fc333
Compare
There is some test failures on JDK24+ due to the addition of yielding virtual threads with monitors where the monitors in transition may have an incorrect state, another case is pinned virtual thread doesn't behave correctly for wait/notify due to the use of native API which doesn't update the virtual thread status. I've pushed my latest change which have passed the known failures in local build/test. |
|
jenkins test sanity alinux64 jdk25 depends ibmruntimes/openj9-openjdk-jdk25#43 |
|
Please add a comment in |
30dcc5d to
3b3a885
Compare
3b3a885 to
386b6f5
Compare
|
@keithc-ca can you please take another look |
keithc-ca
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please either squash, or arrange that changes to any given file are in a single commit. For example, VMHelpers.hpp should have the final change in the first (or only) commit.
386b6f5 to
073c99c
Compare
- Update thread status changes to j.l.Thread fields so getState() API can be called without needing to halt the target thread. - Add support of virtual thread state for JDK24+ Co-authored-by: Nathan Henderson <nathan.henderson@ibm.com> Signed-off-by: Jack Lu <Jack.S.Lu@ibm.com>
Signed-off-by: Jack Lu <Jack.S.Lu@ibm.com>
073c99c to
0a58be1
Compare
|
Jenkins test sanity alinux64 jdk17 |
Update thread status changes to j.l.Thread fields so getState() API
can be called without needing to halt the target thread.
Rework of #20550
Co-dependent extension repo changes:
JDK21: ibmruntimes/openj9-openjdk-jdk21#246
JDK25: ibmruntimes/openj9-openjdk-jdk25#43
JDKnext: ibmruntimes/openj9-openjdk-jdk#927
Fixes: #17251
Co-authored-by: Nathan Henderson nathan.henderson@ibm.com
Signed-off-by: Jack Lu Jack.S.Lu@ibm.com