> 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 suggestions from code review Co-authored-by: Stefan Karlsson <[email protected]> ------------- Changes: - all: https://git.openjdk.org/jdk/pull/32535/files - new: https://git.openjdk.org/jdk/pull/32535/files/1a160b15..2cf44bcc Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=32535&range=02 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=32535&range=01-02 Stats: 3 lines in 1 file changed: 0 ins; 1 del; 2 mod Patch: https://git.openjdk.org/jdk/pull/32535.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/32535/head:pull/32535 PR: https://git.openjdk.org/jdk/pull/32535
