-
Bug
-
Resolution: Unresolved
-
P3
-
repo-valhalla
-
In Review
-
aarch64
Since JDK-8365996, compiler/valhalla/inlinetypes/TestLWorld.java intermittently fails with "-Xcomp -XX:-TieredCompilation -DIgnoreCompilerControls=true" on AArch64:
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/workspace/open/src/hotspot/cpu/aarch64/assembler_aarch64.hpp:265), pid=1108959, tid=1108976
# guarantee(chk == -1 || chk == 0) failed: Field too big for insn
#
# JRE version: Java(TM) SE Runtime Environment (25.0) (fastdebug build 25-lworld5ea-LTS-2025-09-09-0157544.patricio.chilano.mateo.valhalla)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 25-lworld5ea-LTS-2025-09-09-0157544.patricio.chilano.mateo.valhalla, compiled mode, sharing, compressed oops, compressed class ptrs, g1 gc, linux-aarch64)
# Problematic frame:
# V [libjvm.so+0x43e3c0] Instruction_aarch64::sf(long, int, int)+0xe0
Current CompileTask:
C2:33283 5616 b compiler.valhalla.inlinetypes.TestLWorld::test101 (75 bytes)
Stack: [0x0000ffff7005f000,0x0000ffff7025d000], sp=0x0000ffff70257f40, free space=2019k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x43e3c0] Instruction_aarch64::sf(long, int, int)+0xe0 (assembler_aarch64.hpp:265)
V [libjvm.so+0x732238] Assembler::ldp(Register, Register, Address)+0x198 (assembler_aarch64.hpp:641)
V [libjvm.so+0x1381a90] MacroAssembler::remove_frame(int, bool)+0x70 (macroAssembler_aarch64.cpp:6142)
V [libjvm.so+0x434904] MachEpilogNode::emit(C2_MacroAssembler*, PhaseRegAlloc*) const+0x60 (aarch64.ad:1838)
V [libjvm.so+0x1569d4c] PhaseOutput::scratch_emit_size(Node const*)+0x2ec (output.cpp:3486)
V [libjvm.so+0x15622c4] PhaseOutput::shorten_branches(unsigned int*)+0x2e4 (output.cpp:586)
V [libjvm.so+0x1573dec] PhaseOutput::Output()+0x84c (output.cpp:359)
V [libjvm.so+0x9b2874] Compile::Code_Gen()+0x7d4 (compile.cpp:3628)
V [libjvm.so+0x9b68e0] Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x17a0 (compile.cpp:925)
V [libjvm.so+0x7d58e0] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x2bc (c2compiler.cpp:143)
V [libjvm.so+0x9c53b8] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x9d4 (compileBroker.cpp:2323)
V [libjvm.so+0x9c626c] CompileBroker::compiler_thread_loop()+0x62c (compileBroker.cpp:1967)
V [libjvm.so+0xed2528] JavaThread::thread_main_inner()+0x108 (javaThread.cpp:773)
V [libjvm.so+0x187436c] Thread::call_run()+0xac (thread.cpp:243)
V [libjvm.so+0x154839c] thread_native_entry(Thread*)+0x12c (os_linux.cpp:868)
C [libc.so.6+0x80b50] start_thread+0x300
Similar toJDK-8310844 / https://github.com/openjdk/jdk/pull/17266 , I think the problem is that the ldp instruction only supports a 7-bit signed immediate value (https://developer.arm.com/documentation/den0024/a/The-A64-instruction-set/Memory-access-instructions/Accessing-multiple-memory-locations).
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/workspace/open/src/hotspot/cpu/aarch64/assembler_aarch64.hpp:265), pid=1108959, tid=1108976
# guarantee(chk == -1 || chk == 0) failed: Field too big for insn
#
# JRE version: Java(TM) SE Runtime Environment (25.0) (fastdebug build 25-lworld5ea-LTS-2025-09-09-0157544.patricio.chilano.mateo.valhalla)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 25-lworld5ea-LTS-2025-09-09-0157544.patricio.chilano.mateo.valhalla, compiled mode, sharing, compressed oops, compressed class ptrs, g1 gc, linux-aarch64)
# Problematic frame:
# V [libjvm.so+0x43e3c0] Instruction_aarch64::sf(long, int, int)+0xe0
Current CompileTask:
C2:33283 5616 b compiler.valhalla.inlinetypes.TestLWorld::test101 (75 bytes)
Stack: [0x0000ffff7005f000,0x0000ffff7025d000], sp=0x0000ffff70257f40, free space=2019k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x43e3c0] Instruction_aarch64::sf(long, int, int)+0xe0 (assembler_aarch64.hpp:265)
V [libjvm.so+0x732238] Assembler::ldp(Register, Register, Address)+0x198 (assembler_aarch64.hpp:641)
V [libjvm.so+0x1381a90] MacroAssembler::remove_frame(int, bool)+0x70 (macroAssembler_aarch64.cpp:6142)
V [libjvm.so+0x434904] MachEpilogNode::emit(C2_MacroAssembler*, PhaseRegAlloc*) const+0x60 (aarch64.ad:1838)
V [libjvm.so+0x1569d4c] PhaseOutput::scratch_emit_size(Node const*)+0x2ec (output.cpp:3486)
V [libjvm.so+0x15622c4] PhaseOutput::shorten_branches(unsigned int*)+0x2e4 (output.cpp:586)
V [libjvm.so+0x1573dec] PhaseOutput::Output()+0x84c (output.cpp:359)
V [libjvm.so+0x9b2874] Compile::Code_Gen()+0x7d4 (compile.cpp:3628)
V [libjvm.so+0x9b68e0] Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x17a0 (compile.cpp:925)
V [libjvm.so+0x7d58e0] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x2bc (c2compiler.cpp:143)
V [libjvm.so+0x9c53b8] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x9d4 (compileBroker.cpp:2323)
V [libjvm.so+0x9c626c] CompileBroker::compiler_thread_loop()+0x62c (compileBroker.cpp:1967)
V [libjvm.so+0xed2528] JavaThread::thread_main_inner()+0x108 (javaThread.cpp:773)
V [libjvm.so+0x187436c] Thread::call_run()+0xac (thread.cpp:243)
V [libjvm.so+0x154839c] thread_native_entry(Thread*)+0x12c (os_linux.cpp:868)
C [libc.so.6+0x80b50] start_thread+0x300
Similar to
- caused by
-
JDK-8365996 [lworld] Register corruption in GC barrier slow paths in scalarized calling convention on AArch64
-
- Resolved
-
- relates to
-
JDK-8367412 runtime/valhalla/inlinetypes/classloading/ConcurrentClassLoadingTest.java guarantee(chk == -1 || chk == 0) failed: Field too big for insn
-
- Open
-
- links to
-
Review(lworld) openjdk/valhalla/1575