RFR: 8298733: Reconsider monitors_on_stack assert [v2]

Fredrik Bredberg fbredberg at openjdk.org
Wed Apr 16 13:02:58 UTC 2025


> This PR aims to revert this [8298371: monitors_on_stack extracts unprocessed oops](https://github.com/openjdk/jdk/pull/11582) fix at the same time as we retain the ability to assert that we don't have any monitors on the stack when legacy locking is used.
> 
> It does so by moving an assert that ensures that we don't have any monitors on the stack to a place where all stack frames should have been processed. I.e. it's safe to check the frame for any monitor.
> 
> A new function called assert_frames_in_continuation_are_safe() asserts that the frames has been processed (i.e. it  safe to revert the [8298371](https://github.com/openjdk/jdk/pull/11582) fix). By keeping that assertion functionality separate from monitors_on_stack() we will be able to keep that assertion after we have removed legacy locking.
> 
> In order to recreate the original [problem](https://github.com/openjdk/jdk/pull/11582) and verifying that this PR works used, I used:
> `-XX:LockingMode=1 -XX:+UseZGC -XX:+ZVerifyOops -XX:ZCollectionIntervalMajor=0.001 Fuzz.java
> `
> 
> Also passes tier1-7.

Fredrik Bredberg has updated the pull request incrementally with one additional commit since the last revision:

  Updated after Patricio's review

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/24655/files
  - new: https://git.openjdk.org/jdk/pull/24655/files/62486c16..a6f9479f

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=24655&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=24655&range=00-01

  Stats: 2 lines in 1 file changed: 1 ins; 1 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/24655.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/24655/head:pull/24655

PR: https://git.openjdk.org/jdk/pull/24655


More information about the hotspot-runtime-dev mailing list