Integrated: 8343704: Bad GC parallelism with processing Cleaner queues

Aleksey Shipilev shade at openjdk.org
Wed Dec 4 11:40:03 UTC 2024


On Tue, 12 Nov 2024 16:00:39 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

> See the bug for more discussion and reproducer. This PR replaces the ad-hoc linked list with segmented list of arrays. Arrays are easy targets for GC. There are possible improvements here, most glaring is parallelism that is currently knee-capped by global synchronization. The synchronization scheme follows what we have in original code, and I think it is safer to continue with it right now.
> 
> I'll put performance data in a separate comment.
> 
> Additional testing:
>  - [x] Original reproducer improves drastically
>  - [x] New microbenchmark shows no regression on "churning" tests, which covers insertion/removal perf
>  - [x] New microbenchmark shows improvement on Full GC times (crude, but repeatable), serves as a proxy for reproducer
>  - [x] `java/lang/ref` tests in release 
>  - [x] `all` tests in fastdebug

This pull request has now been integrated.

Changeset: 4000e923
Author:    Aleksey Shipilev <shade at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/4000e923e8b4472fe022f1fd78a1c42b2045683f
Stats:     583 lines in 7 files changed: 513 ins; 58 del; 12 mod

8343704: Bad GC parallelism with processing Cleaner queues

Reviewed-by: bchristi, vklang, ogillespie, kdnilsen

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

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


More information about the core-libs-dev mailing list