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