JDK-8233165 : Shenandoah:SBSA::gen_load_reference_barrier_stub() should use pointer register for address on aarch64
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 8-shenandoah,11-shenandoah,14
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • CPU: aarch64
  • Submitted: 2019-10-30
  • Updated: 2020-05-19
  • Resolved: 2019-10-30
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 14
14 b21Fixed
Related Reports
Relates :  
# A fatal error has been detected by the Java Runtime Environment:
#  Internal Error (/home/zgu/jdk/src/hotspot/share/c1/c1_LIR.hpp:414), pid=37925, tid=37939
#  assert(is_double_cpu() && !is_virtual()) failed: type check
# JRE version: OpenJDK Runtime Environment (14.0) (fastdebug build 14-internal+0-adhoc.zgu.jdk)
# Java VM: OpenJDK 64-Bit Server VM (fastdebug 14-internal+0-adhoc.zgu.jdk, mixed mode, sharing, tiered, compressed oops, shenandoah gc, linux-aarch64)
# Problematic frame:
# V  [libjvm.so+0x592174]  LIR_OprDesc::as_register_lo() const+0x50
# Core dump will be written. Default location: /home/zgu/core.37925
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp

---------------  S U M M A R Y ------------

Command Line: -XX:+UnlockDiagnosticVMOptions -XX:MaxRAMFraction=46 -XX:MinRAMFraction=46 -XX:CICompilerCount=4 -XX:ParallelGCThreads=4 -XX:ConcGCThreads=4 -XX:G1ConcRefinementThreads=4 -XX:-RestrictContended -XX:+WhiteBoxAPI -Xbootclasspath/a:/tmp/whitebox16617650170786884074.jar -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:+UnlockDiagnosticVMOptions -XX:ShenandoahGCHeuristics=aggressive -XX:+ShenandoahVerifyOptoBarriers org.openjdk.jcstress.ForkedMain 34651 fork-token-297

Host: merino.lab2.eng.bos.redhat.com, AArch64, 46 cores, 95G, Red Hat Enterprise Linux Server release 7.6 (Maipo)
Time: Tue Oct 29 11:10:36 2019 EDT elapsed time: 29 seconds (0d 0h 0m 29s)

---------------  T H R E A D  ---------------

Current thread (0x0000ffff80364000):  JavaThread "C1 CompilerThread0" daemon [_thread_in_native, id=37939, stack(0x0000ffff616a0000,0x0000ffff618a0000)]

Current CompileTask:
C1:  29317 1619       2       java.lang.invoke.VarHandleReferences$Array::getAndSet (51 bytes)

Stack: [0x0000ffff616a0000,0x0000ffff618a0000],  sp=0x0000ffff6189bef0,  free space=2031k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x592174]  LIR_OprDesc::as_register_lo() const+0x50
V  [libjvm.so+0x12b0cdc]  ShenandoahBarrierSetAssembler::gen_load_reference_barrier_stub(LIR_Assembler*, ShenandoahLoadReferenceBarrierStub*)+0x78
V  [libjvm.so+0x5a04e8]  LIR_Assembler::emit_stubs(CodeStubList*)+0x188
V  [libjvm.so+0x54bcf8]  Compilation::emit_code_epilog(LIR_Assembler*)+0x3c
V  [libjvm.so+0x54eb70]  Compilation::emit_code_body()+0x2a0
V  [libjvm.so+0x54ee80]  Compilation::compile_java_method()+0x280
V  [libjvm.so+0x54f184]  Compilation::compile_method()+0xa4
V  [libjvm.so+0x54f5a4]  Compilation::Compilation(AbstractCompiler*, ciEnv*, ciMethod*, int, BufferBlob*, DirectiveSet*)+0x1fc
V  [libjvm.so+0x5506b8]  Compiler::compile_method(ciEnv*, ciMethod*, int, DirectiveSet*)+0x18c
V  [libjvm.so+0x7c7e74]  CompileBroker::invoke_compiler_on_method(CompileTask*)+0x418
V  [libjvm.so+0x7c8e24]  CompileBroker::compiler_thread_loop()+0x4ac
V  [libjvm.so+0x14a1688]  JavaThread::thread_main_inner()+0x2b0
V  [libjvm.so+0x14a99c0]  JavaThread::run()+0x284
V  [libjvm.so+0x14a6ef4]  Thread::call_run()+0x108
V  [libjvm.so+0x111e754]  thread_native_entry(Thread*)+0x118
C  [libpthread.so.0+0x7c48]  start_thread+0xb4

Introduced by JDK-8231087.

URL: https://hg.openjdk.java.net/jdk/jdk/rev/75099fcf7962 User: zgu Date: 2019-10-30 13:43:20 +0000

diff -r 31ec3e55fa3d src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp --- a/src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp Tue Oct 29 11:33:25 2019 +0100 +++ b/src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp Tue Oct 29 22:34:34 2019 -0400 @@ -544,7 +544,7 @@ Register obj = stub->obj()->as_register(); Register res = stub->result()->as_register(); - Register addr = stub->addr()->as_register_lo(); + Register addr = stub->addr()->as_pointer_register(); Register tmp1 = stub->tmp1()->as_register(); Register tmp2 = stub->tmp2()->as_register();