Skip to content
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

(0.37) Refactor VirtualThread synchronization design #17094

Merged
merged 6 commits into from Apr 3, 2023

Conversation

fengxue-IS
Copy link
Contributor

Removes use of liveVirtualThreadList/liveVirtualThreadListMutex in the VM and rely on GC's Continuation list.
This design uses an atomic based RW lock with busy waiting for vthread access during mounted/unmount transition.
Global access in JVMTI is a slow path and done through Exclusive VM Access which doesn't require additional locking.

mutual dependency:
ibmruntimes/openj9-openjdk-jdk19#87

Port of #16855 and #17086

- Refactor jitReleaseCodeStackWalk to use GC Continuation list
- Refactor vthread sync to EVMA for global vthread access
- Include no spin option for acquireVThreadInspector

Signed-off-by: Jack Lu <Jack.S.Lu@ibm.com>
…ed thread

Signed-off-by: Jack Lu <Jack.S.Lu@ibm.com>
Signed-off-by: Jack Lu <Jack.S.Lu@ibm.com>
Signed-off-by: Jack Lu <Jack.S.Lu@ibm.com>
Continuation must be unmounted/not being scanned when free.

Signed-off-by: Jack Lu <Jack.S.Lu@ibm.com>
Signed-off-by: Jack Lu <Jack.S.Lu@ibm.com>
@fengxue-IS
Copy link
Contributor Author

Local compile/testing passed, Personal build in progress

@pshipton pshipton added this to the Java 19 0.37 milestone Apr 3, 2023
@babsingh
Copy link
Contributor

babsingh commented Apr 3, 2023

Personal build tests JDK17 and JDK19. 0.37 only supports JDK19; JDK17 won't build successfully with the 0.37 release branch. Merging since JDK19 built successfully.

@babsingh babsingh merged commit 7e1781a into eclipse-openj9:v0.37.0-release Apr 3, 2023
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.

None yet

3 participants