<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Hi Ivan,</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Thanks for the note — and nice to meet you!</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
The refinements you're working on around <code>GCTimeRatio</code> and memory uncommit are valuable contributions to the broader AHS direction we've been shaping. They align closely with the multi-input heap sizing model Thomas and I outlined — especially the
emphasis on GC cost (via <code>GCTimeRatio</code>) and memory responsiveness as primary drivers.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
These kinds of enhancements are central to making G1’s heap sizing more adaptive and responsive, particularly in environments with shifting workload patterns. I’m especially interested in your work around improving the GC time-base — it seems like a crucial
piece for coordinating GC-triggered adjustments more precisely.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Given the growing collaboration across contributors, I’ve been thinking of opening an umbrella issue to track these efforts and possibly drafting a JEP to help clarify and unify the overall scope. With Oracle, Google, and others actively contributing, it’s
exciting to see a shared vision taking shape — and your work is clearly part of it.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
I’m genuinely excited to see this come together. Looking forward to continuing the discussion and shaping the future of G1 ergonomics together.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Best,</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);" class="elementToProof">
Monica</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id="Signature" class="elementToProof">
<table id="pbpsiglinktable">
<tbody>
<tr>
<td style="width: 22px; height: 26px;">
<div><a href="https://outlook.office.com/bookwithme/user/6dc2f1f46dfd446aa456d1c1245cecd6@microsoft.com?anonymous&ep=bwmEmailSignature" id="OWA65dfed42-27b8-0cc7-e1e5-8f857abe78ac" class="OWAAutoLink"><img data-outlook-trace="F:1|T:1" src="cid:989053f7-0fb6-4f61-b4fe-cc68816546af"></a></div>
</td>
<td style="width: 2px; height: 28px;"></td>
<td style="width: 194.038px; height: 26px;">
<div style="color: rgb(0, 120, 212);"><a href="https://outlook.office.com/bookwithme/user/6dc2f1f46dfd446aa456d1c1245cecd6@microsoft.com?anonymous&ep=bwmEmailSignature" id="OWAd796ddbe-c822-c3e7-d10f-7cbb13038ca2" class="OWAAutoLink" style="color: rgb(0, 120, 212); text-decoration: none;">Book
time to meet with me</a></div>
</td>
<td style="width: 2px; height: 28px;"></td>
</tr>
</tbody>
</table>
</div>
<div id="appendonsend"></div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<hr style="display: inline-block; width: 98%;">
<div dir="ltr" id="divRplyFwdMsg"><span style="font-family: Calibri, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);"><b>From:</b> Ivan Walulya <ivan.walulya@oracle.com><br>
<b>Sent:</b> Monday, March 24, 2025 6:43 AM<br>
<b>To:</b> Monica Beckwith <Monica.Beckwith@microsoft.com><br>
<b>Cc:</b> Thomas Schatzl <thomas.schatzl@oracle.com>; hotspot-gc-dev@openjdk.org <hotspot-gc-dev@openjdk.org><br>
<b>Subject:</b> [EXTERNAL] Re: Moving Forward with AHS for G1</span>
<div class="elementToProof"> </div>
</div>
<div>Hi,</div>
<div><br>
</div>
<div>Thanks for the summary. </div>
<div><br>
</div>
<div>At Oracle, we are refining the use of GCTimeRatio and enhancing the memory uncommit mechanism [3]. Specifically, we are exploring uncommitting memory during any GC event, rather than restricting it to Remark or Full GCs, as in the current implementation.
Additionally, we are investigating ways to improve on the current use of GC events as a time-base.</div>
<div><br>
</div>
<div>// Ivan</div>
<div><br>
</div>
<blockquote>
<div>On 21 Mar 2025, at 01:19, Monica Beckwith <monica.beckwith@microsoft.com> wrote:</div>
<div><br>
</div>
<div style="text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
Hi all,</div>
<div style="text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
Following up on the previous discussions around Automatic Heap Sizing (AHS) for G1, I wanted to summarize the key takeaways and outline the next steps.</div>
<div style="text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
</div>
<div style="text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
In my November message [1], I described how AHS could dynamically manage heap sizing based on multiple inputs, including global memory pressure,
<code>GCTimeRatio</code> policy, and user-defined heap tunables. This aligns with Thomas’s summary [2], which outlines how AHS integrates with G1’s existing mechanisms, including CPU-based heap resizing (JDK-8238687) [3], external constraints like
<code>CurrentMaxHeapSize</code> (JDK-8204088) [4], and SoftMaxHeapSize (JDK-8236073) [5] as a key influence on heap adjustments.</div>
<div style="text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
</div>
<div style="text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
AHS will operate as a broader mechanism, where <code>SoftMaxHeapSize</code> serves as a heuristic to guide memory management but does not impose strict limits. It will work in conjunction with CPU-based heuristics to manage heap growth and contraction efficiently.</div>
<div style="text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
</div>
<div style="text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
Google’s previous work on <code>ProposedHeapSize</code> for G1 contributed valuable insights into adaptive heap management, but as discussions evolved, the consensus has shifted toward a model centered on<code>SoftMaxHeapSize</code> as a guiding input within
AHS.</div>
<div style="text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
</div>
<div style="text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
Given this consensus, I will proceed with the implementation of JDK-8236073 [5] to ensure that AHS integrates effectively with G1’s dynamic heap sizing policies.</div>
<div style="text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
</div>
<div style="text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
I will share updates as the work progresses. If there are any additional concerns or areas where further clarification is needed, please let me know.</div>
<div style="text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
</div>
<div style="text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
Thanks again for the valuable discussions.</div>
<div style="text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
</div>
<div style="text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
Best,<br>
Monica</div>
<hr style="text-align: left; text-indent: 0px;">
<div style="text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<b>References</b></div>
<div style="text-align: left; text-indent: 0px; margin-top: 1em; margin-bottom: 1em; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
[1] Monica Beckwith, "Clarifications on AHS behavior and its role in G1," OpenJDK hotspot-gc-dev mailing list, November 2024.
<a href="https://mail.openjdk.org/pipermail/hotspot-gc-dev/2024-November/050191.html" id="OWA4aab5dc7-2bac-8a50-a61b-7f6acdb6d1fc" class="x_fui-Link x____1q1shib x_f2hkw1w x_f3rmtva x_f1ewtqcl x_fyind8e x_f1k6fduh x_f1w7gpdv x_fk6fouc x_fjoy568 x_figsok6 x_f1s184ao x_f1mk8lai x_fnbmjn9 x_f1o700av x_f13mvf36 x_f1cmlufx x_f9n3di6 x_f1ids18y x_f1tx3yz7 x_f1deo86v x_f1eh06m1 x_f1iescvh x_fhgqx19 x_f1olyrje x_f1p93eir x_f1nev41a x_f1h8hb77 x_f1lqvz6u x_f10aw75t x_fsle3fq x_f17ae5zn x_OWAAutoLink" title="https://mail.openjdk.org/pipermail/hotspot-gc-dev/2024-november/050191.html" originalsrc="https://mail.openjdk.org/pipermail/hotspot-gc-dev/2024-November/050191.html" data-auth="NotApplicable">
[</a><a href="https://mail.openjdk.org/pipermail/hotspot-gc-dev/2024-November/050191.html" id="OWAa784de5c-4630-e288-b4a5-55d3842cdb3f" class="x_fui-Link x____1q1shib x_f2hkw1w x_f3rmtva x_f1ewtqcl x_fyind8e x_f1k6fduh x_f1w7gpdv x_fk6fouc x_fjoy568 x_figsok6 x_f1s184ao x_f1mk8lai x_fnbmjn9 x_f1o700av x_f13mvf36 x_f1cmlufx x_f9n3di6 x_f1ids18y x_f1tx3yz7 x_f1deo86v x_f1eh06m1 x_f1iescvh x_fhgqx19 x_f1olyrje x_f1p93eir x_f1nev41a x_f1h8hb77 x_f1lqvz6u x_f10aw75t x_fsle3fq x_f17ae5zn x_OWAAutoLink" title="https://mail.openjdk.org/pipermail/hotspot-gc-dev/2024-november/050191.html" originalsrc="https://mail.openjdk.org/pipermail/hotspot-gc-dev/2024-November/050191.html" data-auth="NotApplicable">https://mail.openjdk.org/pipermail/hotspot-gc-dev/2024-November/050191.html</a><a href="https://mail.openjdk.org/pipermail/hotspot-gc-dev/2024-November/XXXXXX.html]" id="OWA4c7641ce-f8a7-f90e-f93b-603fdada71f9" class="x_fui-Link x____1q1shib x_f2hkw1w x_f3rmtva x_f1ewtqcl x_fyind8e x_f1k6fduh x_f1w7gpdv x_fk6fouc x_fjoy568 x_figsok6 x_f1s184ao x_f1mk8lai x_fnbmjn9 x_f1o700av x_f13mvf36 x_f1cmlufx x_f9n3di6 x_f1ids18y x_f1tx3yz7 x_f1deo86v x_f1eh06m1 x_f1iescvh x_fhgqx19 x_f1olyrje x_f1p93eir x_f1nev41a x_f1h8hb77 x_f1lqvz6u x_f10aw75t x_fsle3fq x_f17ae5zn x_OWAAutoLink" title="https://mail.openjdk.org/pipermail/hotspot-gc-dev/2024-november/xxxxxx.html]" originalsrc="https://mail.openjdk.org/pipermail/hotspot-gc-dev/2024-November/XXXXXX.html]" data-auth="NotApplicable">]</a></div>
<div style="text-align: left; text-indent: 0px; margin-top: 1em; margin-bottom: 1em; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
[2] Thomas Schatzl, "Giving a rough summary about the system envisioned for G1," OpenJDK hotspot-gc-dev mailing list, February 2025. [<a href="https://mail.openjdk.org/pipermail/hotspot-gc-dev/2025-February/051069.html" id="OWA477ba83c-3a2b-6524-9ccf-210858b470ad" class="x_fui-Link x____1q1shib x_f2hkw1w x_f3rmtva x_f1ewtqcl x_fyind8e x_f1k6fduh x_f1w7gpdv x_fk6fouc x_fjoy568 x_figsok6 x_f1s184ao x_f1mk8lai x_fnbmjn9 x_f1o700av x_f13mvf36 x_f1cmlufx x_f9n3di6 x_f1ids18y x_f1tx3yz7 x_f1deo86v x_f1eh06m1 x_f1iescvh x_fhgqx19 x_f1olyrje x_f1p93eir x_f1nev41a x_f1h8hb77 x_f1lqvz6u x_f10aw75t x_fsle3fq x_f17ae5zn x_OWAAutoLink" title="https://mail.openjdk.org/pipermail/hotspot-gc-dev/2025-february/051069.html" originalsrc="https://mail.openjdk.org/pipermail/hotspot-gc-dev/2025-February/051069.html" data-auth="NotApplicable">https://mail.openjdk.org/pipermail/hotspot-gc-dev/2025-February/051069.html</a>]</div>
<div style="text-align: left; text-indent: 0px; margin-top: 1em; margin-bottom: 1em; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
[3] OpenJDK Issue, "JDK-8238687: Improve CPU-based heap sizing in G1," OpenJDK Bug Database. [<a href="https://bugs.openjdk.org/browse/JDK-8238687]" id="OWAf15b3eba-7a8f-775d-5fce-83c95c3efdf6" class="x_fui-Link x____1q1shib x_f2hkw1w x_f3rmtva x_f1ewtqcl x_fyind8e x_f1k6fduh x_f1w7gpdv x_fk6fouc x_fjoy568 x_figsok6 x_f1s184ao x_f1mk8lai x_fnbmjn9 x_f1o700av x_f13mvf36 x_f1cmlufx x_f9n3di6 x_f1ids18y x_f1tx3yz7 x_f1deo86v x_f1eh06m1 x_f1iescvh x_fhgqx19 x_f1olyrje x_f1p93eir x_f1nev41a x_f1h8hb77 x_f1lqvz6u x_f10aw75t x_fsle3fq x_f17ae5zn x_OWAAutoLink" title="https://bugs.openjdk.org/browse/jdk-8238687]" originalsrc="https://bugs.openjdk.org/browse/JDK-8238687]" data-auth="NotApplicable">https://bugs.openjdk.org/browse/JDK-8238687]</a></div>
<div style="text-align: left; text-indent: 0px; margin-top: 1em; margin-bottom: 1em; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
[4] OpenJDK Issue, "JDK-8204088: Introduce CurrentMaxHeapSize to allow external heap constraints," OpenJDK Bug Database. [<a href="https://bugs.openjdk.org/browse/JDK-8204088]" id="OWAf694b288-88ee-ad40-b684-ac157211a34e" class="x_fui-Link x____1q1shib x_f2hkw1w x_f3rmtva x_f1ewtqcl x_fyind8e x_f1k6fduh x_f1w7gpdv x_fk6fouc x_fjoy568 x_figsok6 x_f1s184ao x_f1mk8lai x_fnbmjn9 x_f1o700av x_f13mvf36 x_f1cmlufx x_f9n3di6 x_f1ids18y x_f1tx3yz7 x_f1deo86v x_f1eh06m1 x_f1iescvh x_fhgqx19 x_f1olyrje x_f1p93eir x_f1nev41a x_f1h8hb77 x_f1lqvz6u x_f10aw75t x_fsle3fq x_f17ae5zn x_OWAAutoLink" title="https://bugs.openjdk.org/browse/jdk-8204088]" originalsrc="https://bugs.openjdk.org/browse/JDK-8204088]" data-auth="NotApplicable">https://bugs.openjdk.org/browse/JDK-8204088]</a></div>
<div style="text-align: left; text-indent: 0px; margin-top: 1em; margin-bottom: 1em; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
[5] OpenJDK Issue, "JDK-8236073: Introduce SoftMaxHeapSize as a guide for G1 AHS," OpenJDK Bug Database. [<a href="https://bugs.openjdk.org/browse/JDK-8236073" id="OWA4e152741-06f8-14f5-f79a-9556464f513d" class="x_fui-Link x____1q1shib x_f2hkw1w x_f3rmtva x_f1ewtqcl x_fyind8e x_f1k6fduh x_f1w7gpdv x_fk6fouc x_fjoy568 x_figsok6 x_f1s184ao x_f1mk8lai x_fnbmjn9 x_f1o700av x_f13mvf36 x_f1cmlufx x_f9n3di6 x_f1ids18y x_f1tx3yz7 x_f1deo86v x_f1eh06m1 x_f1iescvh x_fhgqx19 x_f1olyrje x_f1p93eir x_f1nev41a x_f1h8hb77 x_f1lqvz6u x_f10aw75t x_fsle3fq x_f17ae5zn x_OWAAutoLink" title="https://bugs.openjdk.org/browse/jdk-8236073" originalsrc="https://bugs.openjdk.org/browse/JDK-8236073" data-auth="NotApplicable">https://bugs.openjdk.org/browse/JDK-8236073</a>]</div>
<div style="text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="text-align: left; text-indent: 0px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt;">
<br>
</div>
<div style="font-family:Helvetica;font-size:12px;text-decoration:none" id="x_Signature" class="x_elementToProof">
<table id="x_pbpsiglinktable">
<tbody>
<tr>
<td style="width: 22px; height: 26px;">
<div><a href="https://outlook.office.com/bookwithme/user/6dc2f1f46dfd446aa456d1c1245cecd6@microsoft.com?anonymous&ep=bwmEmailSignature" id="OWA9fa2163f-0601-f01e-06e6-b9a5bbb1703d" class="x_OWAAutoLink" originalsrc="https://outlook.office.com/bookwithme/user/6dc2f1f46dfd446aa456d1c1245cecd6@microsoft.com?anonymous&ep=bwmEmailSignature" data-auth="NotApplicable"><Outlook-oy3qsdus.png></a></div>
</td>
<td style="width: 2px; height: 29.2px;"></td>
<td style="width: 194.038px; height: 26px;">
<div style="color: rgb(0, 120, 212);"><a href="https://outlook.office.com/bookwithme/user/6dc2f1f46dfd446aa456d1c1245cecd6@microsoft.com?anonymous&ep=bwmEmailSignature" id="OWA3d20649f-8f0d-18e9-52f2-7b4dcb30fad8" class="x_OWAAutoLink" originalsrc="https://outlook.office.com/bookwithme/user/6dc2f1f46dfd446aa456d1c1245cecd6@microsoft.com?anonymous&ep=bwmEmailSignature" data-auth="NotApplicable" style="color: rgb(0, 120, 212); text-decoration: none;">Book
time to meet with me</a></div>
</td>
</tr>
</tbody>
</table>
</div>
</blockquote>
<div><br>
</div>
</body>
</html>