RFR: 8167501 ARMv7 Linux C2 compiler crashes running jtreg harness on MP systems

Daniel D. Daugherty daniel.daugherty at oracle.com
Thu Nov 3 14:32:25 UTC 2016


Thumbs up.

Dan


On 11/3/16 8:06 AM, Bob Vandette wrote:
> 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