RFR: 8255598: [PPC64] assert(Universe::heap()->is_in(result)) failed: object not in heap [v2]
Thomas Schatzl
tschatzl at openjdk.java.net
Mon Nov 9 10:16:58 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
An alternative change could be investigating whether setting `top()` earlier in the serial gc full gc. It seems to only be a problem with that collector, as the others are seemingly not affected.
I'm okay with this change too though.
-------------
Marked as reviewed by tschatzl (Reviewer).
PR: https://git.openjdk.java.net/jdk/pull/1078
More information about the hotspot-compiler-dev
mailing list