Integrated: 8345732: Provide helpers for using PartialArrayState

Kim Barrett kbarrett at openjdk.org
Thu Dec 19 16:05:52 UTC 2024


On Fri, 6 Dec 2024 23:27:33 GMT, Kim Barrett <kbarrett at openjdk.org> wrote:

> 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.

This pull request has now been integrated.

Changeset: 2344a1a9
Author:    Kim Barrett <kbarrett at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/2344a1a917ec6f6380a8187af9f6c369ac3da6cb
Stats:     674 lines in 14 files changed: 489 ins; 123 del; 62 mod

8345732: Provide helpers for using PartialArrayState

Reviewed-by: tschatzl, ayang, zgu, iwalulya

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

PR: https://git.openjdk.org/jdk/pull/22622


More information about the hotspot-gc-dev mailing list