RFR: 8374145: Remove legacy locking remnants from markWord
Axel Boldt-Christmas
aboldtch at openjdk.org
Fri Dec 19 14:30:06 UTC 2025
On Fri, 19 Dec 2025 14:05:13 GMT, Stefan Karlsson <stefank at openjdk.org> wrote:
> There's a bunch of unused code in markWord that used to be used by the removed legacy locking. I propose that we remove it.
>
> There's a Shenandoah change that should be checked closer. My thinking is:
> `is_being_inflated`: always returns false
> `has_displaced_mark_helper`: Only returns true if both these are true:
> * `!UseCompactObjectTable` - there's an early return for this earlier in the function.
> * `lockbits == monitor_value` - checked in the if-statement above
Looks good. Just one thought.
src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp line 349:
> 347: } else if (w.is_being_inflated() || w.has_displaced_mark_helper()) {
> 348: // Informs caller that we aren't able to determine the age
> 349: return markWord::max_age + 1; // sentinel
Not sure if we want an `!w.has_displaced_mark_helper()` assert. Even if we already check for (and handled) the exact conditions (in the current implementation) for `has_displaced_mark_helper()`.
-------------
Marked as reviewed by aboldtch (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/28927#pullrequestreview-3598758617
PR Review Comment: https://git.openjdk.org/jdk/pull/28927#discussion_r2635220791
More information about the shenandoah-dev
mailing list