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