Integrated: 8337709: Use allocated states for chunking large array processing

Kim Barrett kbarrett at openjdk.org
Sun Aug 11 18:36:38 UTC 2024


On Fri, 2 Aug 2024 19:36:47 GMT, Kim Barrett <kbarrett at openjdk.org> wrote:

> Please review this change to the G1 young/mixed collector to use allocated
> states to encode partial array task chunking.
> 
> States are allocated from per-worker-thread arena+free-list pairs, and
> released to the free-list for the worker that completed use.  They are
> refcounted to track the number of refering tasks.
> 
> Various other approaches (such as a single arena+FreeListAllocator) were
> tested, but found to have worse performance, though in some cases fewer
> allocations.  The per-worker arena+free-list pair was the only option that
> didn't show a regression compared to the previous PartialArrayScanTask
> approach on a stress test.
> 
> In addition to the changes to ScannerTask to support the new
> PartialArrayState, it temporarily continues to support PartialArrayScanTask.
> This is because ParallelGC will continue to use the latter until it is changed
> to use PartialArrayState. The intent is to update ParallelGC in a followup CR.
> 
> Testing:
> mach5 tier1-5
> G1 performance suite

This pull request has now been integrated.

Changeset: 6a3d0452
Author:    Kim Barrett <kbarrett at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/6a3d045221c338fefec9bd59245324eae60b156b
Stats:     501 lines in 9 files changed: 356 ins; 57 del; 88 mod

8337709: Use allocated states for chunking large array processing

Reviewed-by: iwalulya, tschatzl

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

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


More information about the hotspot-gc-dev mailing list