<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p>Thomas,<br>
</p>
<p><a class="moz-txt-link-freetext"
href="http://cr.openjdk.java.net/%7Etschatzl/8157952/webrev/src/share/vm/gc/g1/g1_globals.hpp.frames.html">http://cr.openjdk.java.net/~tschatzl/8157952/webrev/src/share/vm/gc/g1/g1_globals.hpp.frames.html</a></p>
Could we change
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<span class="new">G1PreTouchChunkSize to </span><span class="new">PreTouchChunkSize?
It<br>
seems like something we would want to do for other GC's at some<br>
point.<br>
<br>
<a class="moz-txt-link-freetext"
href="http://cr.openjdk.java.net/%7Etschatzl/8157952/webrev/src/share/vm/gc/shared/workgroup.hpp.frames.html">http://cr.openjdk.java.net/~tschatzl/8157952/webrev/src/share/vm/gc/shared/workgroup.hpp.frames.html</a><br>
<br>
</span>
<pre><span class="changed">64 _gc_id(Universe::is_fully_initialized() ? GCId::current_raw() : 0)</span></pre>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
What prompted the above change?<br>
<br>
<a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~tschatzl/8157952/webrev/src/share/vm/gc/g1/g1PageBasedVirtualSpace.cpp.frames.html">http://cr.openjdk.java.net/~tschatzl/8157952/webrev/src/share/vm/gc/g1/g1PageBasedVirtualSpace.cpp.frames.html</a><br>
<br>
<span class="new">I don't think there is anything G1 specific about
class G1PretouchTask. Could it<br>
be renamed PretouchTask and put into its own file for easier
reuse? If you<br>
think that is premature, ignore this comment.<br>
<br>
Pretouch() allows for the case where the work is done by the <br>
current thread (only 1 chunk or null pretouch_gang).<br>
</span>
<pre><span class="new"> 259 void G1PageBasedVirtualSpace::pretouch(size_t start_page, size_t size_in_pages, WorkGang* pretouch_gang) {</span></pre>
Pretouching is so slow that I would not think it made a difference
if parallel worker were<br>
used instead of the current thread. Simpler to just always require
a gang and<br>
use 1 worker in the degenerate case?<br>
<br>
Rest looks good.<br>
<br>
Jon<br>
<br>
<br>
<div class="moz-cite-prefix">On 9/7/16 1:08 AM, Thomas Schatzl
wrote:<br>
</div>
<blockquote cite="mid:1473235694.4387.6.camel@oracle.com"
type="cite">
<pre wrap="">Hi all,
can I have reviews for this change that parallelizes memory pretouch?
Particularly on large systems (like hundreds of GB) this often improves
startup time by an order of magnitude.
Like in some systems with 1TB+ heap I have running from 12mins to
~1min.
It does so by having multiple threads doing the pretouching, using more
of the available memory bandwidth of the computer.
This change only has an FC extension approval by the group lead for
now, but I expect to get the release teams' approval soon.
CR:
<a class="moz-txt-link-freetext" href="https://bugs.openjdk.java.net/browse/JDK-8157952">https://bugs.openjdk.java.net/browse/JDK-8157952</a>
Webrev:
<a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/%7Etschatzl/8157952/webrev">http://cr.openjdk.java.net/~tschatzl/8157952/webrev</a>
Testing:
jprt, vm.gc run with -XX:+AlwaysPreTouch, nightly test suite run
Thanks,
Thomas
</pre>
</blockquote>
<br>
</body>
</html>