<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">On 02/19/2013 11:15 AM, Bengt Rutisson
      wrote:<br>
    </div>
    <blockquote cite="mid:512350A9.6020400@oracle.com" type="cite">
      <meta content="text/html; charset=ISO-8859-1"
        http-equiv="Content-Type">
      <div class="moz-cite-prefix"><br>
        Hi again,<br>
        <br>
        Erik Helin pointed out a potential race in CMS where the
        concurrent cycle may be trying to increment the GC id in
        parallel with a young collection. This is scary for other
        reasons as well but removing the atomic call exposes it. We
        concluded that the safe change is to move the call to
        register_gc_start() in to the CMS VM operation. This way we get
        the VM operation synchronization and can be sure that two
        threads are never incrementing the GC id in parallel.<br>
      </div>
    </blockquote>
    <br>
    Yes, this is better.<br>
    <br>
    thanks,<br>
    StefanK<br>
    <br>
    <blockquote cite="mid:512350A9.6020400@oracle.com" type="cite">
      <div class="moz-cite-prefix"> <br>
        Updated webrev here:<br>
        <a moz-do-not-send="true" class="moz-txt-link-freetext"
          href="http://cr.openjdk.java.net/%7Ebrutisso/8008382/webrev.01/">http://cr.openjdk.java.net/~brutisso/8008382/webrev.01/</a><br>
        <br>
        Bengt<br>
        <br>
        On 2/18/13 2:21 PM, Bengt Rutisson wrote:<br>
      </div>
      <blockquote cite="mid:51222ACE.1000402@oracle.com" type="cite">
        <meta http-equiv="content-type" content="text/html;
          charset=ISO-8859-1">
          <br>
        Hi all,<br>
        <br>
        Could I have a couple of reviews for this change?<br>
        <a moz-do-not-send="true" class="moz-txt-link-freetext"
          href="http://cr.openjdk.java.net/%7Ebrutisso/8008382/webrev.00/">http://cr.openjdk.java.net/~brutisso/8008382/webrev.00/</a><br>
        <br>
        <meta http-equiv="content-type" content="text/html;
          charset=ISO-8859-1">
        There is no need to use atomics in create_new_gc_id() since it
        is not called by multiple threads in parallel. Also,
        Atomic::add(jlong, jlong *) is broken for ARM. <br>
        <br>
        We should remove the use of Atomic::add in create_new_gc_id()
        for now. If we need this to be called by multiple threads in the
        future we have to reconsider how this should be done. Either
        adding a lock or doing some kind of 32 bit atomic work.<br>
        <br>
        Thanks,<br>
        Bengt<br>
      </blockquote>
      <br>
    </blockquote>
    <br>
  </body>
</html>