RFR: 8257774: G1: Trigger collect when free region count drops below threshold to prevent evacuation failures

Aditya Mandaleeka adityam at openjdk.java.net
Mon Jun 7 18:41:24 UTC 2021


On Fri, 4 Jun 2021 09:38:52 GMT, Stefan Johansson <sjohanss at openjdk.org> wrote:

>> Traditionally in the logs you would see that the current collection is \?closed out\? and a new record is started for the \?new\? full collection\.
>> 
>> Kind regards\,
>> Kirk
>
>> Traditionally in the logs you would see that the current collection is ?closed out? and a new record is started for the ?new? full collection.
>> 
> This will still be the case, saying that the young collection is upgraded is a bit misleading (but it is called that in the code). What we are discussing is to add a new specific cause used by the Full GCs. Right now you get:
> 
> [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
> 
> With this change you would get:
> 
> [11,254s][info][gc             ] GC(98) Pause Young (Normal) (G1 Preventive Collection) 3094M->3096M(3100M) 4,513ms
> [11,624s][info][gc             ] GC(99) Pause Full (G1 Preventive Collection) 3096M->3093M(3100M) 369,918ms
> 
> Which looks more strange because the Full GC is not preventive. So the idea is to add a separate cause used by any Full GC triggered by a young collection not generating enough free memory, like this:
> 
> [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
> 
> And for preventive collections it would be:
> 
> [18,454s][info][gc             ] GC(84) Pause Young (Normal) (G1 Preventive Collection) 3096M->3096M(3100M) 1,312ms
> [18,815s][info][gc             ] GC(85) Pause Full (G1 Compaction Pause) 3096M->3096M(3100M) 360,737ms

Thank you @kstefanj and @tschatzl . Great collaborating with you on this.

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

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



More information about the hotspot-gc-dev mailing list