Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8206205 | 12 | Martin Doerr | P3 | Resolved | Fixed | b01 |
JDK-8206682 | 11.0.1 | Martin Doerr | P3 | Resolved | Fixed | b01 |
SafepointSynchronize::begin() and end() were changed for JEP 312: Thread-Local Handshakes. They iterate over all JavaThreads and call SafepointMechanism::arm_local_poll or disarm_local_poll.
Unfortunetly, the release barrier is inside the latter functions.
Assume we have several 1000 JavaThreads. This means the code executes several 1000 release barriers on weak memory model platforms (PPC64 and ARM/aarch64). Only one is needed.
A goal of JEP 312 was to minimize latency of safepoints which gets defeated by this issue to some extend on these platforms.
Unfortunetly, the release barrier is inside the latter functions.
Assume we have several 1000 JavaThreads. This means the code executes several 1000 release barriers on weak memory model platforms (PPC64 and ARM/aarch64). Only one is needed.
A goal of JEP 312 was to minimize latency of safepoints which gets defeated by this issue to some extend on these platforms.
- backported by
-
JDK-8206205 SafepointSynchronize with TLH: StoreStore barriers should be moved out of the loop
- Resolved
-
JDK-8206682 SafepointSynchronize with TLH: StoreStore barriers should be moved out of the loop
- Resolved