On Thu, 27 Aug 2026 07:28:32 GMT, Axel Boldt-Christmas <[email protected]> wrote:
>> Historically we have had displaced markWord's because locking (stack locks, >> and inflated monitors). >> >> After the `UseObjectMonitorTable` removal there are no more need to protect >> against displaced markWords. >> >> I suggest we simplify this logic and clean up the interface w.r.t. >> `identity_hash`. >> >> Changes the `fast_no_hash_check` and `has_no_hash` into `has_identity_hash` >> and `has_hash` checks. >> As before it is invalid to read the hash on marked objects, added asserts to >> ensure this. >> Rewrote `oopDesc::slow_identity_hash` to not regenerate a new hash every >> time it transiently fails to install the hash in the markWord due to some >> other header change. >> >> There are a few places which right now calls `identity_hash` from develop >> logging / introspection printing `InstanceStackChunkKlass::print_chunk` and >> `Continuation::print`. It is a bit unfortunate that we have these >> side-effects in debug VMs. But think we should handle these in a future RFE. >> >> Testing (in progress): >> * Tier 1-3 Oracle supported platforms >> * GHA >> >> --------- >> - [x] I confirm that I make this contribution in accordance with the >> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai). > > Axel Boldt-Christmas has updated the pull request incrementally with one > additional commit since the last revision: > > Apply suggestion from @stefank > > Co-authored-by: Stefan Karlsson <[email protected]> src/hotspot/share/oops/markWord.hpp line 76: > 74: // * valhalla reserved: Reserved for future use > 75: // > 76: // Inline types cannot be locked and have a deterministic identity > hash based You should split this into two sentences to make the meaning clearer. // Inline types cannot be locked. // They have a deterministic hash based on the immutable payload and class, which may be cached in the markWord. Otherwise, it sounds like when they are locked their hash is non-deterministic. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/32535#discussion_r3870035401
