<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Hi all,<br>
<br>
Could I have some reviews for this patch?<br>
<br>
This patch is suggesting ergonomically choosing worker thread count
from given reference count.<br>
We have ParallelRefProcEnabled command-line option which enables to
use ALL workers during reference processing however this option has
a drawback when there's limited number of references. i.e. spends
more time on thread start-up/tear-down than actual processing time
if there are less references. And also we use all threads or single
thread during reference processing which seems less flexible on
thread counts. This patch calculates the worker counts from dividing
reference count by ReferencesPerThread(newly added experimental
option). <br>
My suggestion for the default value of ReferencePerThread is 1000 as
it showed good results from some benchmarks. <br>
<br>
Notes:<br>
1. CMS ParNew is excluded from this patch because:<br>
a) There is a separate CR for CMS (JDK-6938732).<br>
b) It is tricky to manage switching single <-> MT
processing inside of ReferenceProcessor class for ParNew. Tony
explained quite well about the reason here ( <a
class="moz-txt-link-freetext"
href="https://bugs.openjdk.java.net/browse/JDK-6938732?focusedCommentId=13932462&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13932462">https://bugs.openjdk.java.net/browse/JDK-6938732?focusedCommentId=13932462&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13932462</a>
). <br>
c) CMS will be obsoleted in the future so not motivated to fix
within this patch.<br>
2. JDK-8203951 is the CR for removing temporarily added
flag(ReferenceProcessor::_has_adjustable_queue from webrev.0) to
manage ParNew. So the flag should be removed when CMS is obsoleted.<br>
3. Current logic of dividing by ReferencesPerThread would be
replaced with better implementation. e.g. time measuring
implementation etc. But I think current approach is simply and good
enough.<br>
4. This patch is based on JDK-8204094 and JDK-8204095, both are not
yet pushed so far.<br>
<br>
CR: <a class="moz-txt-link-freetext"
href="https://bugs.openjdk.java.net/browse/JDK-8043575">https://bugs.openjdk.java.net/browse/JDK-8043575</a><br>
Webrev: <a class="moz-txt-link-freetext"
href="http://cr.openjdk.java.net/%7Esangheki/8043575/webrev.0/">http://cr.openjdk.java.net/~sangheki/8043575/webrev.0/</a><br>
Testing: hs-tier 1~5 with/without ParallelRefProcEnabled<br>
<br>
Thanks,<br>
Sangheon<br>
</body>
</html>