-
Bug
-
Resolution: Fixed
-
P2
-
10, 11, 12, 13, 14
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8228300 | 13.0.2 | Daniel Daugherty | P2 | Resolved | Fixed | b01 |
JDK-8228084 | 13.0.1 | Daniel Daugherty | P2 | Resolved | Fixed | master |
JDK-8227399 | 13 | Daniel Daugherty | P2 | Resolved | Fixed | b29 |
JDK-8227408 | 11.0.6-oracle | Daniel Daugherty | P2 | Closed | Fixed | b01 |
JDK-8228872 | 11.0.5 | Daniel Daugherty | P2 | Resolved | Fixed | b02 |
SafepointSynchronize::end (now refactored into ::disarm_safepoint) used to always call Interpreter::ignore_safepoints();.
With handshakes it is conditioned on using global safepoint,
SafepointMechanism::uses_global_page_poll(), otherwise safepoint don't touch it.
This means that interpreter would be stuck with safepoint table forever, causing a massive slowdown.
Patch for fixing this is moving the ignore call outside of global safepoint branch, since it contains proper checks:
diff -r 9bd13d6dea77 src/hotspot/share/runtime/safepoint.cpp
--- a/src/hotspot/share/runtime/safepoint.cpp Tue Jul 02 13:20:27 2019 -0400
+++ b/src/hotspot/share/runtime/safepoint.cpp Tue Jul 02 22:31:36 2019 +0200
@@ -470,6 +470,7 @@
PageArmed = false;
- // Remove safepoint check from interpreter
- Interpreter::ignore_safepoints();
}
+ // Remove safepoint check from interpreter
+ Interpreter::ignore_safepoints();
+
OrderAccess::fence(); // keep read and write of _state from floating up
Needs to be investigated and fixed if I haven't missed something.
This would affect version 10 and forward.
- backported by
-
JDK-8227399 normal interpreter table is not restored after single stepping with TLH
-
- Resolved
-
-
JDK-8228084 normal interpreter table is not restored after single stepping with TLH
-
- Resolved
-
-
JDK-8228300 normal interpreter table is not restored after single stepping with TLH
-
- Resolved
-
-
JDK-8228872 normal interpreter table is not restored after single stepping with TLH
-
- Resolved
-
-
JDK-8227408 normal interpreter table is not restored after single stepping with TLH
-
- Closed
-
- relates to
-
JDK-8189941 Implementation JEP 312: Thread-local handshake
-
- Resolved
-
-
JDK-8227338 templateInterpreter.cpp: copy_table() needs to be safer
-
- Resolved
-