<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>