-
Type:
Enhancement
-
Resolution: Fixed
-
Priority:
P4
-
Affects Version/s: None
-
Component/s: hotspot
-
b22
| Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
|---|---|---|---|---|---|---|
| JDK-8371609 | 25.0.3-oracle | Thomas Schatzl | P4 | Resolved | Fixed | master |
| JDK-8371999 | 21.0.11-oracle | Yagmur Eren | P4 | Resolved | Fixed | master |
In G1, during allocation of an object currently there are two locations where a GC can occur:
- during TLAB allocation (i.e. refill)
- during the following allocation outside TLAB
This behavior breaks UseGCOverheadLimit support planned inJDK-8212084: if the overhead limit triggers because of TLAB allocation, returning null, the following allocation outside tlab may succeed (due to how UseGCOverheadLimit works, one is required to actually perform the collections), effectively making this feature non-working.
Fix is to not allow a garbage collection during TLAB allocation, deferring to the following outside-tlab allocation.
Still, TLAB allocation should still try to allocate a new allocation region.
- during TLAB allocation (i.e. refill)
- during the following allocation outside TLAB
This behavior breaks UseGCOverheadLimit support planned in
Fix is to not allow a garbage collection during TLAB allocation, deferring to the following outside-tlab allocation.
Still, TLAB allocation should still try to allocate a new allocation region.
- backported by
-
JDK-8371609 G1: Disallow GC for TLAB allocation
-
- Resolved
-
-
JDK-8371999 G1: Disallow GC for TLAB allocation
-
- Resolved
-
- blocks
-
JDK-8212084 G1: Implement UseGCOverheadLimit
-
- Resolved
-
- links to
-
Commit(master)
openjdk/jdk/027aea9d
-
Review(master)
openjdk/jdk/27932