<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<br>
Hi all,<br>
<br>
Just pinging this review request. Does anybody have some time to
look at it? It is a fairly small and straight forward change...<br>
<br>
Thanks,<br>
Bengt<br>
<br>
-------- Original Message --------
<table class="moz-email-headers-table" border="0" cellpadding="0"
cellspacing="0">
<tbody>
<tr>
<th align="RIGHT" nowrap="nowrap" valign="BASELINE">Subject: </th>
<td>Request for review (S): 7068625 Testing 8 bytes of card
table entries at a time speeds up card-scanning</td>
</tr>
<tr>
<th align="RIGHT" nowrap="nowrap" valign="BASELINE">Date: </th>
<td>Tue, 21 Feb 2012 12:03:50 +0400</td>
</tr>
<tr>
<th align="RIGHT" nowrap="nowrap" valign="BASELINE">From: </th>
<td>Alexey Ragozin <a class="moz-txt-link-rfc2396E" href="mailto:alexey.ragozin@gmail.com"><alexey.ragozin@gmail.com></a></td>
</tr>
<tr>
<th align="RIGHT" nowrap="nowrap" valign="BASELINE">To: </th>
<td><a class="moz-txt-link-abbreviated" href="mailto:hotspot-gc-dev@openjdk.java.net">hotspot-gc-dev@openjdk.java.net</a></td>
</tr>
<tr>
<th align="RIGHT" nowrap="nowrap" valign="BASELINE">CC: </th>
<td>Bengt Rutisson <a class="moz-txt-link-rfc2396E" href="mailto:bengt.rutisson@oracle.com"><bengt.rutisson@oracle.com></a></td>
</tr>
</tbody>
</table>
<br>
<br>
Hi,<br>
<br>
I would like few volunteers to review changes for <a
moz-do-not-send="true"
href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7068625"
target="_blank">http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7068625</a><br>
WebRev: <a moz-do-not-send="true"
href="http://cr.openjdk.java.net/%7Ebrutisso/7068625/webrev.00/"
target="_blank">http://cr.openjdk.java.net/~brutisso/7068625/webrev.00/</a><br>
<br>
Change summary<br>
For large heaps (I was focusing on 8GiB and above) it is common to
have long continuous ranges of clean cards.<br>
Patch is introducing a short path for skipping ranges of clean cards
using word aligned memory access instead of byte aligned.<br>
<br>
Patch affects serial and CMS collectors. For CMS collector stride
size should be increase to see any performance gains (I was using <br>
<div class="MsoNormal"
style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm">
<span style="font-family:"Courier New"">-XX:+UnlockDiagnosticVMOptions
</span></div>
<div class="MsoNormal"
style="line-height:normal;margin-bottom:.0001pt;margin-bottom:0cm"><span
style="font-family:"Courier New"">-XX:ParGCCardsPerStrideChunk=4096)<br>
<br>
</span>For testing I was mainly using synthetic benchmark randomly
modifying hash tables in heap, thus uniformly touching cards
across heaps.<br>
Average duration of young GC pause were used as KPI.<br>
More details about testing can be found at <br>
<a moz-do-not-send="true"
href="http://blog.ragozin.info/2011/07/openjdk-patch-cutting-down-gc-pause.html">http://blog.ragozin.info/2011/07/openjdk-patch-cutting-down-gc-pause.html</a><br>
Though article is referring jdk6, my resent tests with trunk jdk7
show no difference.<br>
I was also tested patch with real application (Oracle Coherence
storage node).<br>
With 16GiB of heap and CMS/ParNew GC, enabling patch have
shortened GC pauses roughly in 2 times.<br>
<br>
Source code of benchmark used in test are available at<br>
<a moz-do-not-send="true"
href="https://gridkit.googlecode.com/svn/branches/aragozin-sandbox/young-gc-bench">https://gridkit.googlecode.com/svn/branches/aragozin-sandbox/young-gc-bench</a><br>
Main class YoungGCPauseBenchmark<br>
</div>
<br>
Regards,<br>
Alexey<br>
<br>
</body>
</html>