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

Ivan Walulya iwalulya at openjdk.org
Wed Aug 7 08:21:34 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

LGTM!

Was there any observable impact on G1 performance suite?

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

Marked as reviewed by iwalulya (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/20445#pullrequestreview-2223259036


More information about the hotspot-gc-dev mailing list