-
Enhancement
-
Resolution: Duplicate
-
P4
-
16
> Created on behalf of Liang Mao (maoliang.ml@alibaba-inc.com)
This bug id is to propose new humongous objects allocation share the young space with eden allocation.
Allocation in eden space and humongous allocation will share the free regions. The GC will be triggered when free_regions == reserve_regions. Initial mark will be triggered immediately if humongous allocation already invaded into _young_list_target_length.
It could resolve following 2 issues:
1) New allocated humongous objects could reach IHOP very quickly and lead to very frequent GCs.
If new allocated humongous objects could use young space, the GC frequency will significantly drop.
2) The humongous allocation could use regions very quickly. G1ReservePercent is used to be the allocation buffer to avoid to-space exhausted by humongous allocation or GC to-space copy and an initial mark will be triggered immediately if humongous occupancy beyond IHOP. But in the concurrent marking cycle or prepare to do mixed GCs, there're no any GC actions ahead to avoid completely full of heap. Triggering GC when there're not enough free regions(free_regions <= reserve_regions) can easily avoid such disasters.
There could be more initial-marks after the change. SoJDK-8240556 is a necessity to avoid uncessary concurrent marks.
This bug id is to propose new humongous objects allocation share the young space with eden allocation.
Allocation in eden space and humongous allocation will share the free regions. The GC will be triggered when free_regions == reserve_regions. Initial mark will be triggered immediately if humongous allocation already invaded into _young_list_target_length.
It could resolve following 2 issues:
1) New allocated humongous objects could reach IHOP very quickly and lead to very frequent GCs.
If new allocated humongous objects could use young space, the GC frequency will significantly drop.
2) The humongous allocation could use regions very quickly. G1ReservePercent is used to be the allocation buffer to avoid to-space exhausted by humongous allocation or GC to-space copy and an initial mark will be triggered immediately if humongous occupancy beyond IHOP. But in the concurrent marking cycle or prepare to do mixed GCs, there're no any GC actions ahead to avoid completely full of heap. Triggering GC when there're not enough free regions(free_regions <= reserve_regions) can easily avoid such disasters.
There could be more initial-marks after the change. So
- duplicates
-
JDK-8257774 G1: Trigger collect when free region count drops below threshold to prevent evacuation failures
- Resolved
- is blocked by
-
JDK-8240556 Abort concurrent mark after effective eager reclamation of humongous objects
- Resolved
- relates to
-
JDK-8251288 G1: Young gen sizing should take short-living humongous object allocation into account
- Closed