<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-margin-top-alt:auto;
margin-right:0in;
mso-margin-bottom-alt:auto;
margin-left:0in;
font-size:12.0pt;
font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri",sans-serif;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-family:Consolas">Hello,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">I am requesting comments on POGC/G1GC supporting NVDIMM/DRAM heaps. When user supplies AllocateOldGenAt=<NVDIMM file path>, JVM divides heap into 2 parts. First part is on NVDIMM where long living objects
go (OldGen) and other part is on DRAM where short living objects reside(YoungGen). This is ONLY supported for G1GC and POGC collectors on Linux and Windows.
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">On Windows, OldGen resizing is NOT supported. On Linux, for G1GC, OldGen resizing is not supported however for POGC it is. Heap residing on DRAM is supported for Windows and Linux for POGC and G1GC.
<o:p></o:p></span></p>
<p class="MsoNormal" style="margin:0in;margin-bottom:.0001pt"><span style="font-family:Consolas;color:#1F497D">JEP to support allocating Old generation on NV-DIMM - </span><span style="font-family:Consolas"><a href="https://bugs.openjdk.java.net/browse/JDK-8202286">https://bugs.openjdk.java.net/browse/JDK-8202286</a><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-family:Consolas">Patch is at http://cr.openjdk.java.net/~kkharbas/8202286/webrev.00/
<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-family:Consolas">SpecJbb2005/SpecJbb2015 etc. are passing with this patch and one can test this by simply mounting tmpfs of certain size and pass that as an argument to AllocateOldGenAt.
<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-family:Consolas">For G1GC, G1MaxNewSizePercent controls how much of total heap will reside on DRAM. Rest of the heap then goes to NVDIMM.<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-family:Consolas">For POGC, MaxNewSize decides the DRAM residing young gen size. Rest is mounted on NVDIMM.<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-family:Consolas">In all these implementations, JVM ends up reserving more than initial size determined by ergonomics (never more than Xmx). JVM displays these messages and shows NVDIMM and DRAM
reserved bytes.<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-family:Consolas">Thanks,<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-family:Consolas">Vinay<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-family:Consolas"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Consolas"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><o:p> </o:p></span></p>
</div>
</body>
</html>