RFR: 8291555: Replace stack-locking with fast-locking
Robbin Ehn
rehn at openjdk.org
Thu Oct 6 07:47:09 UTC 2022
On Mon, 8 Aug 2022 18:29:54 GMT, Roman Kennke <rkennke at openjdk.org> wrote:
> > I ran some test locally, 4 JDI fails and 3 JVM TI, all seems to fail in:
> > ```
> > #7 0x00007f7cefc5c1ce in Thread::is_lock_owned (this=this at entry=0x7f7ce801dd90, adr=adr at entry=0x1 <error: Cannot access memory at address 0x1>) at /home/rehn/source/jdk/ongit/dev-jdk/open/src/hotspot/share/runtime/thread.cpp:549
> > #8 0x00007f7cef22c062 in JavaThread::is_lock_owned (this=0x7f7ce801dd90, adr=0x1 <error: Cannot access memory at address 0x1>) at /home/rehn/source/jdk/ongit/dev-jdk/open/src/hotspot/share/runtime/javaThread.cpp:979
> > #9 0x00007f7cefc79ab0 in Threads::owning_thread_from_monitor_owner (t_list=<optimized out>, owner=owner at entry=0x1 <error: Cannot access memory at address 0x1>)
> > at /home/rehn/source/jdk/ongit/dev-jdk/open/src/hotspot/share/runtime/threads.cpp:1382
> > ```
>
> Thanks, Robbin! That was a bug in JvmtiBase::get_owning_thread() where an anonymous owner must be converted to the oop address before passing down to Threads::owning_thread_from_monitor_owner(). I pushed a fix. Can you re-test? Testing com/sun/jdi passes for me, now.
Yes, that fixed it. I'm running more tests also.
I got this build problem on aarch64:
open/src/hotspot/share/asm/assembler.hpp:168), pid=3387376, tid=3387431
# assert(is_bound() || is_unused()) failed: Label was never bound to a location, but it was used as a jmp target
V [libjvm.so+0x4f4788] Label::~Label()+0x48
V [libjvm.so+0x424a44] cmpFastLockNode::emit(CodeBuffer&, PhaseRegAlloc*) const+0x764
V [libjvm.so+0x1643888] PhaseOutput::fill_buffer(CodeBuffer*, unsigned int*)+0x538
V [libjvm.so+0xa85fcc] Compile::Code_Gen()+0x3bc
-------------
PR: https://git.openjdk.org/jdk/pull/9680
More information about the shenandoah-dev
mailing list