<div dir="ltr"><div><span style="font-family:arial,sans-serif;font-size:13px">Hi, </span><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">I am sending this webrev for the review.</div>
<div style="font-family:arial,sans-serif;font-size:13px">(On behalf of Jon Masamitsu, it is upload here)</div><div style="font-family:arial,sans-serif;font-size:13px"><a href="http://cr.openjdk.java.net/~jmasa/8028554/webrev.00/" target="_blank">http://cr.openjdk.java.net/~jmasa/8028554/webrev.00/</a><br>
</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">The feature is a new heuristics to calculate the default ParallelGCThreads and ConGCThreads.</div>
<div style="font-family:arial,sans-serif;font-size:13px">In x86, hyperthreading is generally bad for GC because of the cache contention.</div><div style="font-family:arial,sans-serif;font-size:13px">Hence, using all the hyper-threaded cores will slow down the overall GC performance.</div>
<div style="font-family:arial,sans-serif;font-size:13px">Current hotspot reads the number of processors that the Linux reports,</div><div style="font-family:arial,sans-serif;font-size:13px">which treats all hyper-threaded cores equally.</div>
<div style="font-family:arial,sans-serif;font-size:13px">Second problem is that when cpu mask is set, not all the cores are available for the GC.</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">
The patch improves the heuristics by evaluating the actual available physical cores</div><div style="font-family:arial,sans-serif;font-size:13px">from the proc filesystem and the CPU mask, and use that as the basis for calculating the ParallelGCThreads and ConcGCThreads.</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">The improvements of GC pause time is significant. We evaluated on Nehalem, Westmere, Sandybridge as well as several AMD processors. We also evaluated on various CPU mask configuration and single/dual socket configurations. </div>
<div style="font-family:arial,sans-serif;font-size:13px">In almost all cases, there were speed up in GC pause time by 10~50%.</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">
We primarily use CMS collector for the evaluation, but we also tested on other GCs as well.</div><div style="font-family:arial,sans-serif;font-size:13px">Please take a look and let me know if this patch can be accepted.</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Thanks,</div><div style="font-family:arial,sans-serif;font-size:13px">Jungwoo Ha</div></div><br></div>