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