RFR: assert failure with traversal gc in macroAssembler_x86.cpp

Aleksey Shipilev shade at redhat.com
Mon Jun 18 13:55:25 UTC 2018


On 06/18/2018 03:50 PM, Roland Westrelin wrote:
> http://cr.openjdk.java.net/~roland/shenandoah/masm-enqueue-regs/webrev.00/

Looks good to me. Do we need to push/pop c_rarg0 before using it?

> When called from c1, dst can sometimes be c_rarg1.

Is this the stack trace you are seeing?

#  Internal Error
(/home/shade/trunks/shenandoah-jdk/src/hotspot/cpu/x86/macroAssembler_x86.cpp:2609), pid=22694,
tid=23053
#  assert(arg_0 != c_rarg1) failed: smashed arg
#

Stack: [0x00007f275d18e000,0x00007f275d28f000],  sp=0x00007f275d28c750,  free space=1017k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native
code)
V  [libjvm.so+0x1e5c852]  VMError::report_and_die(int, char const*, char const*, __va_list_tag*,
Thread*, unsigned char*, void*, void*, char const*, int, unsigned long)+0x532
V  [libjvm.so+0x1e5d4bf]  VMError::report_and_die(Thread*, void*, char const*, int, char const*,
char const*, __va_list_tag*)+0x2f
V  [libjvm.so+0xb7c9ba]  report_vm_error(char const*, int, char const*, char const*, ...)+0x12a
V  [libjvm.so+0x1355927]  MacroAssembler::call_VM_leaf(unsigned char*, RegisterImpl*,
RegisterImpl*)+0xb7
V  [libjvm.so+0x1762741]  ShenandoahBarrierSetAssembler::satb_write_barrier_pre(MacroAssembler*,
RegisterImpl*, RegisterImpl*, RegisterImpl*, RegisterImpl*, bool, bool)+0x5c1
V  [libjvm.so+0x1762ba1]  ShenandoahBarrierSetAssembler::storeval_barrier_impl(MacroAssembler*,
RegisterImpl*, RegisterImpl*)+0x2a1
V  [libjvm.so+0x1763b88]  ShenandoahBarrierSetAssembler::xchg_oop(MacroAssembler*, unsigned long,
RegisterImpl*, Address, RegisterImpl*)+0x48
V  [libjvm.so+0x8110a5]  LIR_Assembler::atomic_op(LIR_Code, LIR_OprDesc*, LIR_OprDesc*,
LIR_OprDesc*, LIR_OprDesc*)+0x1c5
V  [libjvm.so+0x7f4d50]  LIR_Assembler::emit_lir_list(LIR_List*)+0xb0
V  [libjvm.so+0x7f5d2b]  LIR_Assembler::emit_code(BlockList*)+0x14b
V  [libjvm.so+0x7912f6]  Compilation::emit_code_body()+0x1d6
V  [libjvm.so+0x793a86]  Compilation::compile_java_method()+0x5c6
V  [libjvm.so+0x794831]  Compilation::compile_method()+0x1f1
V  [libjvm.so+0x795487]  Compilation::Compilation(AbstractCompiler*, ciEnv*, ciMethod*, int,
BufferBlob*, DirectiveSet*)+0x3e7
V  [libjvm.so+0x7976da]  Compiler::compile_method(ciEnv*, ciMethod*, int, DirectiveSet*)+0x19a
V  [libjvm.so+0xaebc1f]  CompileBroker::invoke_compiler_on_method(CompileTask*)+0x49f
V  [libjvm.so+0xaecad1]  CompileBroker::compiler_thread_loop()+0x2d1
V  [libjvm.so+0x1d8deaf]  JavaThread::thread_main_inner()+0x2df
V  [libjvm.so+0x1d8e19d]  JavaThread::run()+0x22d

-Aleksey



More information about the shenandoah-dev mailing list