RFR: 8320318: ObjectMonitor Responsible thread
Fredrik Bredberg
fbredberg at openjdk.org
Mon Sep 9 08:44:03 UTC 2024
Removed the concept of an ObjectMonitor Responsible thread.
The reason to have an ObjectMonitor Responsible thread was to avoid threads getting stranded due to a hole in the successor protocol. This hole was there because adding the necessary memory barrier was considered too expensive some 20 years ago.
The ObjectMonitor Responsible thread code adds complexity, and doing timed parks just to avoid getting stranded is not the way forward. More info about the problems with the ObjectMonitor responsible thread can be found in [JDK-8320318](https://bugs.openjdk.org/browse/JDK-8320318).
After removing the ObjectMonitor Responsible thread we see increased performance on all supported platforms except Windows. [JDK-8339730](https://bugs.openjdk.org/browse/JDK-8339730) has been created to handle this.
Passes tier1-tier7 on supported platforms.
x64, AArch64, Riscv64, ppc64le and s390x passes ok on the test/micro/org/openjdk/bench/vm/lang/LockUnlock.java test.
Arm32 and Zero doesn't need any changes as far as I can tell.
-------------
Commit messages:
- Small fixes before the review
- Merge branch 'master' into 8320318_objectmon_responsible_thread
- Merge branch 'master' into 8320318_objectmon_responsible_thread
- Removed _Responsible
- Fixed s390
- Fixed legacy locking
- Merge branch 'master' into 8320318_objectmon_responsible_thread
- Moved complexity from assembler to c++
- Small fixes for x86 and PowerPC.
- 8320318: ObjectMonitor Responsible thread
Changes: https://git.openjdk.org/jdk/pull/19454/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=19454&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8320318
Stats: 708 lines in 15 files changed: 294 ins; 284 del; 130 mod
Patch: https://git.openjdk.org/jdk/pull/19454.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/19454/head:pull/19454
PR: https://git.openjdk.org/jdk/pull/19454
More information about the hotspot-dev
mailing list