Skip to content

Commit

Permalink
Modified -Xmint/-Xmaxt and -Xminf/-Xmaxf for balanced GC
Browse files Browse the repository at this point in the history
eclipse-openj9#835

Signed-off-by: Sreekala Gopakumar [email protected]
  • Loading branch information
Sreekala-Gopakumar committed Jul 25, 2022
1 parent c240b94 commit 8943c52
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 6 deletions.
4 changes: 2 additions & 2 deletions docs/version0.30.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ This option specifies/unspecifies classes of objects that will be hashed and ext

Heap resizing heuristics have been redesigned for the `balanced` GC policy. This includes both total heap resizing including eden and non-eden components independently, and also balancing between these two components when the heap is fully expanded. The heuristics now combine both the CPU overhead (for Partial GCs as well as Global Mark Phase) and the heap occupancy criteria. The balancing between eden and non-eden for fully expanded heaps is far more dynamic (instead of being mostly fixed in the ratio 1:4).

As a consequence, there should typically be less need for heap sizing tuning options, most notably for eden sizing options [-Xmn, -Xmns, and -Xmnx](xmn.md).
As a consequence, there should typically be less need for heap sizing tuning options, most notably for eden sizing options [-Xmn, -Xmns, and -Xmnx](xmn.md).

Also, a new soft limit pause target is added for Partial GCs, which defaults to 200ms. This criterion is combined with the PGC CPU overhead criterion for a balanced compromise between minimizing footprint, maximizing throughput, and meeting the paused time target.

Expand All @@ -75,7 +75,7 @@ More details about the new heuristics can be found at:

The heuristics now obey the following existing options that were previously used for the `optthruput`, `optavgpause`, and `gencon` GC policies:

- [-Xmint/-Xmaxt](xmint.md)
- [-Xmint/-Xmaxt](xmint.md)
- [-Xgc:dnssExpectedTimeRatioMaximum/Minimum](xgc.md#dnssexpectedtimeratiomaximum)

The heuristics also use the [-Xgc:targetPausetime](xgc.md#targetpausetime) option that was previously used only for the `metronome` GC policy.
Expand Down
6 changes: 3 additions & 3 deletions docs/xgcpolicy.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,12 +106,12 @@ The behavior of the following options is different when specified with `-Xgcpoli
[`-Xcompactexplicitgc`](xcompactexplicitgc.md) (default)
: Forces compaction in explicit Global GC cycles, such as those invoked by `System.gc()`. Compaction in implicit Global GC remains optional, triggered by internal heuristics.

[`-Xgc:targetPausetime`](xgc.md#targetpausetime)
: Uses the specified GC pause time as a soft GC pause time target.

[`-Xnocompactexplicitgc`](xcompactexplicitgc.md)
: Disables compaction in explicit Global GC cycles. Compaction in implicit Global GC remains optional, triggered by internal heuristics.

[`-Xgc:targetPausetime`](xgc.md#targetpausetime)
: Uses the specified GC pause time as a soft GC pause time target.

The following options are ignored when specified with `-Xgcpolicy:balanced`:

- `-Xconcurrentbackground<number>`
Expand Down
2 changes: 1 addition & 1 deletion docs/xminf.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ If the free space is above or below these limits, the OpenJ9 VM attempts to adju

The value range is 0.0 - 1.0.

- For the `balanced` GC policy, these values apply only to the non-eden space part of the heap. The non-eden heap resizing decision is made by observing both `-Xmint`/`-Xmaxt` and `-Xminf`/`-Xmaxf`. Free memory in eden space is not considered for `-Xminf`/`-Xmaxf` purposes.
- For the `balanced` GC policy, these values apply only to the non-eden space part of the heap. The non-eden heap resizing decision is made by observing both `-Xmint`/`-Xmaxt` and `-Xminf`/`-Xmaxf`. Free memory in eden space is not considered for `-Xminf`/`-Xmaxf` purposes.
- For the `gencon` GC policy, the values apply only to the tenure part of the heap and only at global GC points.
- For the `optthruput` and `optavgpause` GC policies, these values apply to the whole heap at every GC point.
- This option cannot be used with the metronome GC policy (`-Xgcpolicy:metronome`) because the heap is always fully expanded.
Expand Down

0 comments on commit 8943c52

Please sign in to comment.