[lworld] RFR: 8376566: [lworld] Runtime cleanups of markWord hashCode for inline types after JDK-8376171 [v2]
Dan Heidinga
heidinga at openjdk.org
Fri Feb 13 13:24:55 UTC 2026
On Fri, 13 Feb 2026 10:10:10 GMT, Paul Hübner <phubner at openjdk.org> wrote:
>> Hi all,
>>
>> The main ideas of this patch are to highlight and enforce the invariant we enforce when it comes to value objects' identity hash code.
>>
>> The original JBS issues addresses the following points, which have been addressed to various extents:
>>
>> 1. Adding assertions to the CAS-setting of the hash in the markWord. This is vital to enforce the invariant and was added.
>> 2. Breaking the loop if the CAS results in a conflict. Putting the identity hash in the markWord is an optimization, so one could break out of the loop whenever. With the assertion, there's a good confidence that CAS will eventually succeed, namely once other threads stop poking at the markWord bits. **If there is demand, I can add a fixed upper bound.**
>> 3. SSA-ing the hash variable. Done.
>> 4. Possibly introducing a markWord::has_hash to improve legibility. I did not do this as it would yield multiple `obj->mark()` calls in the fast path and the current form is (in my opinion) sufficiently legible.
>>
>> Testing: tiers 1-3 on Linux (x64, AArch64), macOS (x64, AArch64), Windows (x64).
>
> Paul Hübner has updated the pull request incrementally with one additional commit since the last revision:
>
> Reviewer comments.
Marked as reviewed by heidinga (no project role).
-------------
PR Review: https://git.openjdk.org/valhalla/pull/2029#pullrequestreview-3797264000
More information about the valhalla-dev
mailing list