RFR: 8353588: [REDO] DaCapo xalan performance with -XX:+UseObjectMonitorTable

Roman Kennke rkennke at openjdk.org
Thu Apr 3 12:05:17 UTC 2025


Like #24098, but clears the BasicLock cache before calling inflate_and_enter().


diff --git a/src/hotspot/share/runtime/deoptimization.cpp b/src/hotspot/share/runtime/deoptimization.cpp
index f7e0844639b..f17c46fea38 100644
--- a/src/hotspot/share/runtime/deoptimization.cpp
+++ b/src/hotspot/share/runtime/deoptimization.cpp
@@ -1667,6 +1667,9 @@ bool Deoptimization::relock_objects(JavaThread* thread, GrowableArray<MonitorInf
           // was fast_locked to restore the valid lock stack.
           ObjectSynchronizer::enter_for(obj, lock, deoptee_thread);
           if (deoptee_thread->lock_stack().contains(obj())) {
+            if (UseObjectMonitorTable) {
+              lock->clear_object_monitor_cache();
+            }
             LightweightSynchronizer::inflate_fast_locked_object(obj(), ObjectSynchronizer::InflateCause::inflate_cause_vm_internal,
                                                                 deoptee_thread, thread);
           }

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

Commit messages:
 - 8353588: [REDO] DaCapo xalan performance with -XX:+UseObjectMonitorTable

Changes: https://git.openjdk.org/jdk/pull/24413/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=24413&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8353588
  Stats: 66 lines in 9 files changed: 40 ins; 6 del; 20 mod
  Patch: https://git.openjdk.org/jdk/pull/24413.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/24413/head:pull/24413

PR: https://git.openjdk.org/jdk/pull/24413


More information about the hotspot-dev mailing list