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).

-------------

Commit messages:
 - 8391174: Simplify `identity_hash` after UseObjectMonitorTable removal

Changes: https://git.openjdk.org/jdk/pull/32535/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=32535&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8391174
  Stats: 107 lines in 13 files changed: 31 ins; 37 del; 39 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

Reply via email to