RFR: 8310031: Parallel: Implement better work distribution for large object arrays in old gen [v17]

Richard Reingruber rrich at openjdk.org
Thu Oct 12 10:38:19 UTC 2023


On Thu, 12 Oct 2023 09:12:47 GMT, Richard Reingruber <rrich at openjdk.org> wrote:

>>> No, I mean L212 to L228. "Comment on lines +212 to +228"
>> 
>> I looked at this at first but thought it is obviously wrong if `obj` is precisely marked after a previous young collection. But if it is precisely marked it is of course correct scan from the beginning of the dirty chunk (addr_l) to the obj/stripe end.
>
> I  get `assert(should_scavenge(p, true)) failed: revisiting object?` with test/jdk/java/lang/Thread/virtual/stress/Skynet.java when the change is applied.
> 
> It reproduces well but not 100%. Need to look into it.

`obj` can be scanned twice if it reaches into the stripe because `obj.addr > start` will still false upon the 2nd time. Fix is to check `i_addr > start`.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/14846#discussion_r1356624126


More information about the hotspot-gc-dev mailing list