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