RFR: 8345293: Fix generational Shenandoah with compact headers
Roman Kennke
rkennke at openjdk.org
Mon Dec 2 11:15:12 UTC 2024
See bug for crash details.
The problem is in the code that gets the object age out of the mark-word. That code has a special cases for when an object is monitor locked, in which case it fetches the displaced header out of the monitor and extracts the age from there. However, with compact headers, we're running with ObjectMonitorTable, and decoding the monitor-locked mark-word crashes.
The fix is simple: when we are running with ObjectMonitorTable, the mark-word never gets overloaded by locking, so we can return the age straight out of the mark-word.
Testing:
- [x] hotspot_gc_shenandoah +UCOH
-------------
Commit messages:
- 8345293: Fix generational Shenandoah with compact headers
Changes: https://git.openjdk.org/jdk/pull/22477/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=22477&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8345293
Stats: 5 lines in 1 file changed: 5 ins; 0 del; 0 mod
Patch: https://git.openjdk.org/jdk/pull/22477.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/22477/head:pull/22477
PR: https://git.openjdk.org/jdk/pull/22477
More information about the hotspot-gc-dev
mailing list