Integrated: 8048180: G1: Eager reclaim of humongous objects with references
Thomas Schatzl
tschatzl at openjdk.org
Mon Oct 13 14:54:14 UTC 2025
On Fri, 26 Sep 2025 11:53:50 GMT, Thomas Schatzl <tschatzl at openjdk.org> wrote:
> Hi all,
>
> please review this change to G1 that enables eager reclaim of humongous objects with references, either objArrays or just really large objects.
>
> It works the same as other humongous object's eager reclaim, with the caveat that I disabled it during concurrent mark to avoid problems with SATB. There is fairly extensive documentation about why I think this works, and how in the comment in `g1YoungCollector.cpp`.
>
> The test case exhaustively tests all combinations of when a particular type of object should be able to be reclaimed depending on when it is allocated (only for `typeArray` and `objArray` - huge objects work the same as the latter).
>
> I added a diagnostic flag `G1EagerReclaimWithRefs` to allow disabling this particular functionality for diagnostic purposes, but I think it's not really necessary, and I'm open to remove it.
>
> The following screenshot shows pause times before (purple) and after (brown) of one of the [Optaplanner](https://www.optaplanner.org/blog/2021/09/15/HowMuchFasterIsJava17.html) benchmarks as a result of this change.
>
> <img width="702" height="485" alt="Screenshot 2025-09-26 at 13 59 05" src="https://github.com/user-attachments/assets/995e9e27-f861-44bd-8ced-3bd952e314e8" />
>
> Testing: new test cases, gha, tier1-5
>
> Thanks,
> Thomas
This pull request has now been integrated.
Changeset: f292d7c6
Author: Thomas Schatzl <tschatzl at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/f292d7c66c6279f929eb37ffcc1857a269f72e3d
Stats: 412 lines in 10 files changed: 232 ins; 114 del; 66 mod
8048180: G1: Eager reclaim of humongous objects with references
Co-authored-by: Ivan Walulya <iwalulya at openjdk.org>
Reviewed-by: iwalulya, ayang
-------------
PR: https://git.openjdk.org/jdk/pull/27525
More information about the hotspot-gc-dev
mailing list