RFR: 8191565: Last-ditch Full GC should also move humongous objects [v2]
Thomas Schatzl
tschatzl at openjdk.org
Tue Mar 7 09:57:19 UTC 2023
On Mon, 6 Mar 2023 10:22:27 GMT, Ivan Walulya <iwalulya at openjdk.org> wrote:
>> Hi All,
>>
>> Please review this change to move humongous regions during the Last-Ditch full gc ( on `do_maximal_compaction`). This change will enable G1 to avoid encountering Out-Of-Memory errors that may occur due to the fragmentation of memory regions caused by the allocation of large memory blocks.
>>
>> Here's how it works: At the end of `phase2_prepare_compaction`, G1 performs a serial compaction process for regular objects, which results in the heap being divided into two parts. The first part is a densely populated prefix that contains all the regular objects that have been moved. The second part consists of the remaining heap space, which may contain free regions, uncommitted regions, and regions that are not compacting. By moving/compacting the humongous objects in the second part of the heap closer to the dense prefix, G1 reduces the region fragmentation and avoids running into OOM errors.
>>
>> We have enabled for G1 the Jtreg test that was previously used only for Shenandoah to test such workload.
>>
>> Testing: Tier 1-3
>
> Ivan Walulya has updated the pull request incrementally with two additional commits since the last revision:
>
> - Refactor resetting humongous metadata
> - Thomas review
Looks good.
-------------
Marked as reviewed by tschatzl (Reviewer).
PR: https://git.openjdk.org/jdk/pull/12830
More information about the shenandoah-dev
mailing list