RFR: 8255598: [PPC64] assert(Universe::heap()->is_in(result)) failed: object not in heap [v2]
Albert Mingkun Yang
ayang at openjdk.java.net
Fri Nov 6 11:12:57 UTC 2020
On Thu, 5 Nov 2020 22:29:11 GMT, Martin Doerr <mdoerr at openjdk.org> wrote:
>> JDK-8237363 introduced "assert(Universe::heap()->is_in..." check in CompressedOops::decode functions.
>> This assertion restricts the usability of the decode functions. There are periods of time (during GC) at which we can't use " Universe::heap()->is_in" because the pointer gets switched between old and new location, but "Universe::heap()->is_in" is not yet accurate.
>> PPC64 code has a usage of CompressedOops::decode which is affected by this problem. (It was observed with SerialGC, see JBS.)
>> We could also use a weaker assertion, but seems like other people value the stronger assertion more. So I suggest to use decode_raw as workaround for PPC64.
> Martin Doerr has updated the pull request incrementally with one additional commit since the last revision:
> add comment and use CompressedOops::is_null
Marked as reviewed by ayang (Author).
More information about the hotspot-gc-dev