RFR: JDK-8241503: C2: Share MacroAssembler between mach nodes during code emission [v11]
Boris Ulasevich
bulasevich at openjdk.org
Fri Apr 5 02:11:13 UTC 2024
On Wed, 27 Mar 2024 16:12:26 GMT, Boris Ulasevich <bulasevich at openjdk.org> wrote:
>> Cesar Soares Lucas has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 12 commits:
>>
>> - Merge remote-tracking branch 'origin/master' into reuse-macroasm
>> - Fix AArch64 build & improve comment about InstructionMark
>> - Catching up with changes in master
>> - Catching up with origin/master
>> - Catch up with origin/master
>> - Merge with origin/master
>> - Fix build, copyright dates, m4 files.
>> - Fix merge
>> - Catch up with master branch.
>>
>> Merge remote-tracking branch 'origin/master' into reuse-macroasm
>> - Some inst_mark fixes; Catch up with master.
>> - ... and 2 more: https://git.openjdk.org/jdk/compare/89e0889a...b4d73c98
>
> FYI. Something goes wrong with the change on ARM32.
>
> #
> # A fatal error has been detected by the Java Runtime Environment:
> #
> # Internal Error (/ws/workspace/jdk-dev/label/linux-arm/type/b11/jdk/src/hotspot/share/asm/codeBuffer.hpp:163), pid=10782, tid=10796
> # assert(_mark != nullptr) failed: not an offset
> #
> # JRE version: OpenJDK Runtime Environment (23.0) (fastdebug build 23-commit8fc9097b-adhoc.re.jdk)
> # Java VM: OpenJDK Server VM (fastdebug 23-commit8fc9097b-adhoc.re.jdk, mixed mode, g1 gc, linux-arm)
> # Problematic frame:
> # V [libjvm.so+0x136ccc] emit_call_reloc(C2_MacroAssembler*, MachCallNode const*, MachOper*, RelocationHolder const&)+0x2ac
> #
> # Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport %p %s %c %d %P %E" (or dumping to /ws/workspace/jdk-dev-jtreg/label/linux-arm/suite/jdk-tier1/type/t11/core.10782)
> #
> # If you would like to submit a bug report, please visit:
> # https://bugreport.java.com/bugreport/crash.jsp
> #
>
> --------------- S U M M A R Y ------------
>
> Command Line:
>
> Host: vm-ubuntu-16v4-aarch64-1, ARM, 4 cores, 7G, Ubuntu 16.04.7 LTS
> Time: Wed Mar 27 07:16:41 2024 UTC elapsed time: 0.097440 seconds (0d 0h 0m 0s)
>
> --------------- T H R E A D ---------------
>
> Current thread (0xb120cd10): JavaThread "C2 CompilerThread0" daemon [_thread_in_vm, id=10796, stack(0xb1090000,0xb1110000) (512K)]
>
> Stack: [0xb1090000,0xb1110000], sp=0xb110d200, free space=500k
> Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
> V [libjvm.so+0x136ccc] emit_call_reloc(C2_MacroAssembler*, MachCallNode const*, MachOper*, RelocationHolder const&)+0x2ac (codeBuffer.hpp:163)
> V [libjvm.so+0x14ca28] CallRuntimeDirectNode::emit(C2_MacroAssembler*, PhaseRegAlloc*) const+0x80
> V [libjvm.so+0x10ed850] PhaseOutput::scratch_emit_size(Node const*)+0x37c
> V [libjvm.so+0x10e5f64] PhaseOutput::shorten_branches(unsigned int*)+0x274
> V [libjvm.so+0x10f6dcc] PhaseOutput::Output()+0x488
> V [libjvm.so+0x699b54] Compile::Code_Gen()+0x424
> V [libjvm.so+0x69a87c] Compile::Compile(ciEnv*, TypeFunc const* (*)(), unsigned char*, char const*, int, bool, bool, DirectiveSet*)+0xb3c
> V [libjvm.so+0x122e73c] OptoRuntime::generate_stub(ciEnv*, TypeFunc const* (*)(), unsigned char*, char const*, int, bool, bool)+0xb4
> V [libjvm.so+0x122ec68] OptoRuntime::generate(ciEnv*)+0x50
> V [libjvm.so+0x4994cc] C2Compiler::init_c2_runtime()+0x104
> V [libjvm.so+0x4996dc] C2Compiler::initialize()+0x9c
> V [libjvm.so+...
> @bulasevich - Is the test that failed one of JDK jtreg tests? Did you include any additional JVM parameter to run the test?
This happens on VM startup with empty params (no test).
-------------
PR Comment: https://git.openjdk.org/jdk/pull/16484#issuecomment-2038631560
More information about the shenandoah-dev
mailing list