RFR: 8167501 ARMv7 Linux C2 compiler crashes running jtreg harness on MP systems
Bob Vandette
bob.vandette at oracle.com
Thu Nov 3 14:06:36 UTC 2016
Please review this JDK9 work-around for a reliability problem causing crashes and hangs
running jtreg on ARMv7 MP platforms using the server compiler.
This work-around disables the use of quick-enter on ARM. This enhancement was
previously disabled for AARCH64 binaries.
This work-around has been independently verified by running jtreg on two different MP
based ARM systems.
https://bugs.openjdk.java.net/browse/JDK-8167501 <https://bugs.openjdk.java.net/browse/JDK-8167501>
diff --git a/src/share/vm/runtime/sharedRuntime.cpp b/src/share/vm/runtime/sharedRuntime.cpp
--- a/src/share/vm/runtime/sharedRuntime.cpp
+++ b/src/share/vm/runtime/sharedRuntime.cpp
@@ -1983,8 +1983,10 @@
// Handles the uncommon case in locking, i.e., contention or an inflated lock.
JRT_BLOCK_ENTRY(void, SharedRuntime::complete_monitor_locking_C(oopDesc* _obj, BasicLock* lock, JavaThread* thread))
// Disable ObjectSynchronizer::quick_enter() in default config
- // on AARCH64 until JDK-8153107 is resolved.
- if (AARCH64_ONLY((SyncFlags & 256) != 0 &&) !SafepointSynchronize::is_synchronizing()) {
+ // on AARCH64 and ARM until JDK-8153107 is resolved.
+ if (ARM_ONLY((SyncFlags & 256) != 0 &&)
+ AARCH64_ONLY((SyncFlags & 256) != 0 &&)
+ !SafepointSynchronize::is_synchronizing()) {
// Only try quick_enter() if we're not trying to reach a safepoint
// so that the calling thread reaches the safepoint more quickly.
if (ObjectSynchronizer::quick_enter(_obj, thread, lock)) return;
The real problem will be investigated and fixed under this bug:
https://bugs.openjdk.java.net/browse/JDK-8153107 <https://bugs.openjdk.java.net/browse/JDK-8153107>
Bob.
More information about the hotspot-dev
mailing list