[lilliput-jdk17u:lilliput] RFR: 8303027: [Lilliput/JDK17] Correctly resolve forwarded objects in G1 heap iteration

Roman Kennke rkennke at openjdk.org
Wed Feb 22 12:53:30 UTC 2023


On Wed, 22 Feb 2023 12:20:15 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

> But depending on the frequency of `block_is_obj(p)` being true, we might just put the `in_full_gc()` condition inside the `block_size()` itself?

The actual problem only arises when evacuation fails and GC tries to recover from that (specifically, when the GC is restoring self-forwarded object headers). That is not very performance critical, I think. However, block_size() is called from many other places during GC, and is potentially applied to all (live) objects, e.g. during heap scan. It may be helped a little by bitmap based iteration, but I'd rather not risk affecting performance of all the common paths, if I can avoid it.

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

PR: https://git.openjdk.org/lilliput-jdk17u/pull/6


More information about the lilliput-dev mailing list