[lworld] RFR: 8373494: [lworld] markWord preservation for ParallelGC [v3]

Joel Sikström jsikstro at openjdk.org
Fri Dec 12 09:55:38 UTC 2025


On Fri, 12 Dec 2025 09:51:51 GMT, Stefan Johansson <sjohanss at openjdk.org> wrote:

>> src/hotspot/share/gc/parallel/psParallelCompact.cpp line 2279:
>> 
>>> 2277:       markWord mark = safe_mark_prototype(cur_addr, remaining_words);
>>> 2278: 
>>> 2279:       closure.do_addr(cur_addr, obj_size, mark);
>> 
>> The fact that `do_addr` calls a function named `words_remaining()` and the current code calculates a `remaining_words` feels a bit messy and it's not immediately obvious that this is correct. Is there a reason why this can't be handled from withing the `do_addr` function?
>
> Yes, I agree, we overlooked that we had that information inside `do_addr`.

The remaining_words here are the remaining words in the "from"/"source" region, while the `words_remaining()` inside `do_addr` are the words remaining in the "to"/"destination" region. We could rename remaining_words to something like `from_words_remaining`?

The reason we can't handle this in `do_addr` is because obj_size can be larger than the words we have remaining in the from region.

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

PR Review Comment: https://git.openjdk.org/valhalla/pull/1785#discussion_r2613611071


More information about the valhalla-dev mailing list