After JDK-8136677 and JDK-8143220, "occupancy" for G1 IHOP is now computed by this formula:
region_size * (num_old_regions + num_humongous_regions) + new_humonogous_alloc_bytes
However, in G1IHOPControl::print(), G1AdaptiveIHOPControl::print(), G1IHOPControl::send_trace_event() and G1AdaptiveIHOPControl::send_trace_event(), the occupancy value is G1CollectedHeap::heap()->used(), which includes used bytes in young regions and does not include wasted space in old regions.
I'll sponsor my colleague Jonathan Joo to fix this.
region_size * (num_old_regions + num_humongous_regions) + new_humonogous_alloc_bytes
However, in G1IHOPControl::print(), G1AdaptiveIHOPControl::print(), G1IHOPControl::send_trace_event() and G1AdaptiveIHOPControl::send_trace_event(), the occupancy value is G1CollectedHeap::heap()->used(), which includes used bytes in young regions and does not include wasted space in old regions.
I'll sponsor my colleague Jonathan Joo to fix this.
- relates to
-
JDK-8136677 Adaptive sizing for IHOP in G1
- Resolved
-
JDK-8143220 Fix documentation of InitiatingHeapOccupancyPercent
- Resolved
- links to
-
Review openjdk/jdk/5762