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

Reply via email to