RFR: 8268122: Add specific gc cause for G1 full collections [v3]

Kim Barrett kbarrett at openjdk.java.net
Mon Jun 7 09:31:59 UTC 2021


On Mon, 7 Jun 2021 09:03:25 GMT, Stefan Johansson <sjohanss at openjdk.org> wrote:

>> Please review this change to add a new GC cause for GC Full collections that are caused by a prior collection not being able to free up enough space.
>> 
>> **Summary**
>> During the review of PR #3143 it got pretty clear that reusing the Young GC cause for a following Full GC is not always good. A solution for this is to add a new GC cause that is used if a young collection can't free up enough space. This cause will not be used for other explicit Full GCs, like a call to `System.gc()`.
>> 
>> The would result in a change from:
>> 
>> [13,276s][info][gc             ] GC(71) Pause Young (Normal) (G1 Evacuation Pause) 3096M->3096M(3100M) 1,159ms
>> [13,644s][info][gc             ] GC(72) Pause Full (G1 Evacuation Pause) 3096M->3096M(3100M) 368,157ms
>> 
>> to:
>> 
>> [18,454s][info][gc             ] GC(84) Pause Young (Normal) (G1 Evacuation Pause) 3096M->3096M(3100M) 1,312ms
>> [18,815s][info][gc             ] GC(85) Pause Full (G1 Compaction Pause) 3096M->3096M(3100M) 360,737ms
>> 
>> 
>> This PR is currently based in PR #4342, where we slightly change how Full GCs are scheduled if a Younc GC can't free up enough space.
>> 
>> **Testing**
>> I've tested this change together with PR #4342 and tier1-3 looks good. Also done manual testing making sure the GC-cause is used correctly.
>
> Stefan Johansson has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Move compaction cause in enum to under evacuation cause.

Looks good.

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

Marked as reviewed by kbarrett (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/4357


More information about the hotspot-gc-dev mailing list