RFR: 8365190: Remove LockingMode related code from share

Coleen Phillimore coleenp at openjdk.org
Tue Sep 2 20:35:48 UTC 2025


On Tue, 2 Sep 2025 08:24:10 GMT, Fredrik Bredberg <fbredberg at openjdk.org> wrote:

> Since the integration of [JDK-8359437](https://bugs.openjdk.org/browse/JDK-8359437) the `LockingMode` flag can no longer be set by the user. After that, a number of PRs has been integrated which has removed all `LockingMode` related code from all platforms (except from zero, which is done in this PR).
> 
> This PR removes `LockingMode` related code from the shared (non-platform specific) files. It also removes the `LockingMode` variable itself.
> 
> Passes tier1-tier5 with no added problems.

A few comments and suggestions for your next RFE.

src/hotspot/share/jvmci/vmStructs_jvmci.cpp line 344:

> 342:   volatile_nonstatic_field(ObjectMonitor,      _entry_list,                                   ObjectWaiter*)                         \
> 343:   volatile_nonstatic_field(ObjectMonitor,      _succ,                                         int64_t)                               \
> 344:   volatile_nonstatic_field(ObjectMonitor,      _stack_locker,                                 BasicLock*)                            \

There are some jvmci tests that check that the java side of jvmci matches, ie:

make test TEST=compiler/jvmci

src/hotspot/share/runtime/basicLock.hpp line 51:

> 49:   void set_bad_metadata_deopt() { set_metadata(badDispHeaderDeopt); }
> 50: 
> 51:   static int displaced_header_offset_in_bytes() { return metadata_offset_in_bytes(); }

Also delete line 51 ?

src/hotspot/share/runtime/javaThread.cpp line 2007:

> 2005: #ifdef SUPPORT_MONITOR_COUNT
> 2006:   // Nothing to do. Just do some sanity check.
> 2007:   assert(_held_monitor_count == 0, "counter should not be used");

In further cleanup, can we now remove _held_monitor_count next?

src/hotspot/share/runtime/lightweightSynchronizer.cpp line 769:

> 767: 
> 768: // LightweightSynchronizer::inflate_locked_or_imse is used to to get an inflated
> 769: // ObjectMonitor* when lightweight locking is used. It is used from contexts

I guess you don't need the phrase "when lightweight locking is used".

src/hotspot/share/runtime/lightweightSynchronizer.cpp line 823:

> 821: ObjectMonitor* LightweightSynchronizer::inflate_into_object_header(oop object, ObjectSynchronizer::InflateCause cause, JavaThread* locking_thread, Thread* current) {
> 822: 
> 823:   // The JavaThread* locking_thread parameter is only used by lightweight locking and

Same here. suggestion:


// The JavaThread* locking parameter requires that the locking_thread == JavaThread::current, or is suspended
// throughout the call by some other mechanism.

src/hotspot/share/runtime/synchronizer.cpp line 542:

> 540:   }
> 541:   ObjectMonitor* monitor;
> 542:   monitor = LightweightSynchronizer::inflate_locked_or_imse(obj(), inflate_cause_notify, CHECK);

Declare and initialize on the same line:

ObjectMonitor* monitor = LightwightSynchronizer::inflate_locked_or_imse(obj...);

src/hotspot/share/runtime/synchronizer.cpp line 557:

> 555: 
> 556:   ObjectMonitor* monitor;
> 557:   monitor = LightweightSynchronizer::inflate_locked_or_imse(obj(), inflate_cause_notify, CHECK);

same here with
ObjectMonitor* monitor = LIght ...

I think we should have another RFE to look at eliminating the middle call.  Call these in LIghtweightSynchronizer::notify, notifyAll and waitInterruptably directly and remove these functions.

src/hotspot/share/runtime/synchronizer.inline.hpp line 48:

> 46:   assert(current == Thread::current(), "must be");
> 47: 
> 48:     LightweightSynchronizer::enter(obj, lock, current);

In the further RFE, we should remove these dispatch functions too.

-------------

PR Review: https://git.openjdk.org/jdk/pull/27041#pullrequestreview-3177963667
PR Review Comment: https://git.openjdk.org/jdk/pull/27041#discussion_r2317054927
PR Review Comment: https://git.openjdk.org/jdk/pull/27041#discussion_r2317063086
PR Review Comment: https://git.openjdk.org/jdk/pull/27041#discussion_r2317069783
PR Review Comment: https://git.openjdk.org/jdk/pull/27041#discussion_r2317072241
PR Review Comment: https://git.openjdk.org/jdk/pull/27041#discussion_r2317077253
PR Review Comment: https://git.openjdk.org/jdk/pull/27041#discussion_r2317084869
PR Review Comment: https://git.openjdk.org/jdk/pull/27041#discussion_r2317088830
PR Review Comment: https://git.openjdk.org/jdk/pull/27041#discussion_r2317095107


More information about the hotspot-dev mailing list