Re: RFR: 8291555: Implement alternative fast-locking scheme [v52]

2023-04-04 Thread David Holmes
On Tue, 4 Apr 2023 22:12:03 GMT, David Holmes wrote: >>> Given the owner could release the monitor the moment after we check I don't >>> see how false results are an issue here. The existing code should be safe >>> when not executed at a safepoint.. >> >> I checked again. It looks like the Dea

Re: RFR: 8291555: Implement alternative fast-locking scheme [v52]

2023-04-04 Thread David Holmes
On Tue, 4 Apr 2023 19:04:03 GMT, Roman Kennke wrote: >>> Not at all clear to me how this fits here. ?? >> >> This block checks whether the monitor is in waiting state. When it is >> anonymously locked it must be waiting. I added a comment. > >> Given the owner could release the monitor the mome

Re: RFR: 8291555: Implement alternative fast-locking scheme [v52]

2023-04-04 Thread David Holmes
On Tue, 4 Apr 2023 12:57:38 GMT, Thomas Stuefe wrote: >> Thanks @tstuefe . I see at that level if the object doesn't match the top of >> the lock-stack then we take the slow path. But then I'm lost - AFAICS the >> slow path is `InterpreterRuntime::monitorexit` and that doesn't have any >> fast

Re: RFR: 8291555: Implement alternative fast-locking scheme [v52]

2023-04-04 Thread Roman Kennke
On Tue, 4 Apr 2023 19:01:44 GMT, Roman Kennke wrote: >> src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/JavaVFrame.java >> line 85: >> >>> 83: ( // we have marked ourself as pending on this monitor >>> 84: mark.monitor().equals(thread.getCurrentPendingMonitor()) ||

Re: RFR: 8291555: Implement alternative fast-locking scheme [v52]

2023-04-04 Thread Roman Kennke
On Tue, 4 Apr 2023 12:57:38 GMT, Thomas Stuefe wrote: >> Thanks @tstuefe . I see at that level if the object doesn't match the top of >> the lock-stack then we take the slow path. But then I'm lost - AFAICS the >> slow path is `InterpreterRuntime::monitorexit` and that doesn't have any >> fast

Re: RFR: 8291555: Implement alternative fast-locking scheme [v52]

2023-04-04 Thread Roman Kennke
On Tue, 4 Apr 2023 06:46:02 GMT, David Holmes wrote: > One thing I can't quite get clear in my head is whether the small window > where an object's monitor is inflated and the object is still in the thread's > lock-stack, could cause an issue for any external observers trying to > determine th

Re: RFR: 8291555: Implement alternative fast-locking scheme [v52]

2023-04-04 Thread Thomas Stuefe
On Mon, 3 Apr 2023 11:05:41 GMT, Roman Kennke wrote: >> This change adds a fast-locking scheme as an alternative to the current >> stack-locking implementation. It retains the advantages of stack-locking >> (namely fast locking in uncontended code-paths), while avoiding the overload >> of the

Re: RFR: 8291555: Implement alternative fast-locking scheme [v52]

2023-04-04 Thread Thomas Stuefe
On Tue, 4 Apr 2023 12:25:19 GMT, David Holmes wrote: >> That is done one layer up in InterpreterMacroAssembler::unlock_object. > > Thanks @tstuefe . I see at that level if the object doesn't match the top of > the lock-stack then we take the slow path. But then I'm lost - AFAICS the > slow path

Re: RFR: 8291555: Implement alternative fast-locking scheme [v52]

2023-04-04 Thread David Holmes
On Tue, 4 Apr 2023 08:17:14 GMT, Thomas Stuefe wrote: >> src/hotspot/cpu/x86/macroAssembler_x86.cpp line 9739: >> >>> 9737: get_thread(thread); >>> 9738: #endif >>> 9739: subl(Address(thread, JavaThread::lock_stack_top_offset()), oopSize); >> >> Is this code used for monitorexit or only ret

Re: RFR: 8291555: Implement alternative fast-locking scheme [v52]

2023-04-04 Thread Thomas Stuefe
On Tue, 4 Apr 2023 05:54:09 GMT, David Holmes wrote: >> Roman Kennke has updated the pull request incrementally with one additional >> commit since the last revision: >> >> Fix typo > > src/hotspot/cpu/x86/macroAssembler_x86.cpp line 9739: > >> 9737: get_thread(thread); >> 9738: #endif >>

Re: RFR: 8291555: Implement alternative fast-locking scheme [v52]

2023-04-03 Thread David Holmes
On Mon, 3 Apr 2023 11:05:41 GMT, Roman Kennke wrote: >> This change adds a fast-locking scheme as an alternative to the current >> stack-locking implementation. It retains the advantages of stack-locking >> (namely fast locking in uncontended code-paths), while avoiding the overload >> of the

Re: RFR: 8291555: Implement alternative fast-locking scheme [v52]

2023-04-03 Thread Roman Kennke
> This change adds a fast-locking scheme as an alternative to the current > stack-locking implementation. It retains the advantages of stack-locking > (namely fast locking in uncontended code-paths), while avoiding the overload > of the mark word. That overloading causes massive problems with Li