<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Hi Leonid,<br>
<br>
I think the changes for making it possible to trigger a marking
cycle through the WB API looks good. There are however some problems
with the test.<br>
---<br>
24 assertTrue(wb.g1StartConcMarkCycle());<br>
25 wb.fullGC();<br>
26 assertTrue(wb.g1StartConcMarkCycle());<br>
<br>
Here the test assumes that it should be able to trigger a new
marking cycle since the Full-GC have aborted the previous one, but
it is possible that the concurrent mark thread hasn't yet finished
the cycle even if it has been aborted. That is, during cycle will
return true for some time after the concurrent mark has been
aborted.<br>
---<br>
28 while (wb.g1InConcurrentMark()) {<br>
29 assertFalse(wb.g1StartConcMarkCycle());<br>
30 }<br>
31 <br>
32 assertTrue(wb.g1StartConcMarkCycle());<br>
33 <br>
34 while (wb.g1InConcurrentMark()) {<br>
35 assertFalse(wb.g1StartConcMarkCycle());<br>
36 }<br>
<br>
Here the problem is that we can't guarantee that the concurrent
cycle won't finish just before the call to
wb.g1StartConcMarkCycle(), and therefor the assert might fail. <br>
---<br>
<br>
I'm not sure how you want to improve the test to avoid these
problems, the only really robust way I think is to only use the
g1InConcurrentMark() call to wait until marking is finished and then
assert that we can trigger a new cycle.<br>
<br>
Thanks,<br>
Stefan<br>
<br>
<div class="moz-cite-prefix">On 2014-11-20 16:13, Leonid Mesnik
wrote:<br>
</div>
<blockquote cite="mid:546E0530.4060904@oracle.com" type="cite">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
Hi<br>
<br>
Here is the fix which introduce WB method which stars concurrent
mark cycle explicitly. It is needed to make CM cycle related tests
more stable.<br>
<br>
Changeset also includes test and very small fix of WB method
g1InConcurrentMark
<meta http-equiv="content-type" content="text/html; charset=utf-8">
.<br>
Fix pass JPRT with hotspot testset.<br>
<br>
JIRA: <a moz-do-not-send="true" class="moz-txt-link-freetext"
href="https://bugs.openjdk.java.net/browse/JDK-8065579">https://bugs.openjdk.java.net/browse/JDK-8065579</a><br>
Webrev: <a moz-do-not-send="true" class="moz-txt-link-freetext"
href="http://cr.openjdk.java.net/%7Esjohanss/lmesnik/8065579/hotspot.00/">http://cr.openjdk.java.net/~sjohanss/lmesnik/8065579/hotspot.00/</a><br>
</blockquote>
<br>
</body>
</html>