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

Albert Mingkun Yang ayang at openjdk.org
Tue Oct 10 09:45:13 UTC 2023


On Mon, 9 Oct 2023 15:31:22 GMT, Richard Reingruber <rrich at openjdk.org> wrote:

> Also it only comes from overlapping card table preprocessing with scavenging. I think this could be removed again without loosing performance.

That complexity is uncalled for if its benefit is marginal.

> It could be passed by reference if the query in process_range would be pulled up before the find_first_clean_card call.
> The implementation should be straight forward. I think I'll experiment with it.

Could it be updated to not query object-start? That would remove much complexity inside that method.

Additionally, I wonder if the scanning-dirty-chunk iteration can be simplified a bit: the num of calls to `scan_obj_with_limit` seems excessive and it's not obvious whether it's intended or not that `continue` skips `drain_stacks_cond_depth`). If so, dirtying-first-card-inside-a-stripe probably strikes the best balance btw complexity and performance/mem-overhead for now. Otherwise, I prefer shadow-card-table for its simplicity and the mem-overhead issue can be addressed later on.

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

PR Comment: https://git.openjdk.org/jdk/pull/14846#issuecomment-1754833838


More information about the hotspot-gc-dev mailing list