RFR: 8345732: Provide helpers for using PartialArrayState [v2]
Kim Barrett
kbarrett at openjdk.org
Fri Dec 13 01:29:13 UTC 2024
> Please review this change that introduces two new helper classes to simplify
> the usage of PartialArrayStates to manage splitting the processing of large
> object arrays into parallelizable chunks. G1 and Parallel young GCs are
> changed to use this new mechanism.
>
> PartialArrayTaskStats is used to collect and report statistics related to
> array splitting. It replaces the direct implementation in PSPromotionManager,
> and is now also used by G1 young GCs.
>
> PartialArraySplitter packages up most of the work involved in splitting and
> processing tasks. It provides task allocation and release, enqueuing, chunk
> claiming, and statistics tracking. It does this by encapsulating existing
> objects and functionality. Using array splitting is mostly reduced to calling
> the splitter's start function and then calling it's step function to process
> partial states. This substantially reduces the amount of code for each client
> to perform this work.
>
> Testing: mach5 tier1-5
>
> Manually ran some test programs with each of G1 and Parallel, with taskqueue
> stats logging enabled, and checked that the logged statistics looked okay.
Kim Barrett has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains five additional commits since the last revision:
- Merge branch 'master' into pa-splitter
- parallel uses PartialArraySplitter
- g1 uses PartialArraySplitter
- add PartialArraySplitter
- add PartialArrayTaskStats
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/22622/files
- new: https://git.openjdk.org/jdk/pull/22622/files/7da8b4b0..b0ea3f51
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=22622&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=22622&range=00-01
Stats: 15644 lines in 2681 files changed: 8811 ins; 1996 del; 4837 mod
Patch: https://git.openjdk.org/jdk/pull/22622.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/22622/head:pull/22622
PR: https://git.openjdk.org/jdk/pull/22622
More information about the hotspot-gc-dev
mailing list