On Fri, 7 Aug 2026 14:14:32 GMT, Fredrik Bredberg <[email protected]> wrote:
> The main objectives for this PR are: > 1) Compact Object Headers needs the Object Monitor Table to work. > 2) Both Compact Object Headers > ([JDK-8360700](https://bugs.openjdk.org/browse/JDK-8360700)) and Object > Monitor Table ([JDK-8379782](https://bugs.openjdk.org/browse/JDK-8379782)) > are now enabled by default. > 3) If we always use the Object Monitor Table, we will free up lots of bits > in the markword, that could be of use to others (read GC). > 4) If we don't need to maintain any "monitor pointer in the mark word" code, > we will simplify the code base. > > Therefore this PR will remove the `UseObjectMonitorTable` flag and related > code. > > Note that this PR only removes the most obvious use of the > `UseObjectMonitorTable` in the code base. This is to ease the burden on the > reviewers. [JDK-8389938](https://bugs.openjdk.org/browse/JDK-8389938) has > been created to finalize the work by removing the less obvious code, like no > longer used mark word code in different GCs. > > The code has passed tier1-7 testing on supported platforms and smoke testing > using QEMU on `RISC-V`, `PowerPC` and `s390`. > > --------- > - [x] I confirm that I make this contribution in accordance with the [OpenJDK > Interim AI Policy](https://openjdk.org/legal/ai). Superficially, looks fine. A few comments on this draft: src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp line 48: > 46: > 47: // Shenandoah relies on the object header bits (including the > self-forwarded bit > 48: // at markWord::self_fwd_mask_in_place) being preserved across monitor > inflation. You can purge this comment altogether, it is only explaning why OMT is enabled. src/hotspot/share/oops/markWord.hpp line 257: > 255: } > 256: ObjectMonitor* monitor() const { > 257: guarantee(false, "Locking with OM table does not use markWord for > monitors"); Sounds like `ShouldNotReachHere()` or `ShouldNotCallThis()` :) Also, if we are prohibiting these calls, how bad it is to remove the method itself? We expect no real callers for them? src/hotspot/share/runtime/globals.hpp line 124: > 122: > \ > 123: product(bool, UseCompressedOops, false, > \ > 124: "Use 32-bit objec treferences in 64-bit VM. " > \ Typo. ------------- PR Review: https://git.openjdk.org/jdk/pull/32257#pullrequestreview-4883802858 PR Review Comment: https://git.openjdk.org/jdk/pull/32257#discussion_r3736527130 PR Review Comment: https://git.openjdk.org/jdk/pull/32257#discussion_r3736568265 PR Review Comment: https://git.openjdk.org/jdk/pull/32257#discussion_r3736574309
