RFR: 8305898: Alternative self-forwarding mechanism [v4]

Roman Kennke rkennke at openjdk.org
Tue May 9 20:07:41 UTC 2023


On Tue, 9 May 2023 19:14:26 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

>> Roman Kennke has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains ten commits:
>> 
>>  - Merge branch 'JDK-8305896' into JDK-8305898
>>  - Merge branch 'JDK-8305896' into JDK-8305898
>>  - Merge branch 'JDK-8305896' into JDK-8305898
>>  - Merge branch 'JDK-8305896' into JDK-8305898
>>  - Use forwardee() in forward_to_atomic() method
>>  - Merge branch 'JDK-8305896' into JDK-8305898
>>  - Merge branch 'JDK-8305896' into JDK-8305898
>>  - Replace uses of decode_pointer() with forwardee()
>>  - 8305898: Alternative self-forwarding mechanism
>
> src/hotspot/share/oops/oop.inline.hpp line 332:
> 
>> 330:     return cast_to_oop(this);
>> 331:   } else {
>> 332:     return cast_to_oop(header.decode_pointer());
> 
> I think this path misses the original assert:
> 
> 
> assert(is_forwarded(), "only decode when actually forwarded");

No, not really. This method exists to support racy access on the mark word. The equivalent of is_forwarded() here is header.is_marked().

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

PR Review Comment: https://git.openjdk.org/jdk/pull/13779#discussion_r1189077714


More information about the hotspot-dev mailing list