<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Hi all,<br>
<br>
Could I have some reviews for this tiny change that adds volatile
qualifier?<br>
<br>
Currently without 'volatile' we don't have any problem but I would
like to add it for the code readability.<br>
<br>
--------<br>
* Background<br>
Initially this problem occurred between b127 and b134 (<= b126 or
>= b135 are okay). <br>
b127 includes "JDK-8155949, Support relaxed semantics in cmpxchg"
and b135 includes "JDK-8157904: Atomic::cmpxchg for jbyte is missing
a fence on initial failure". <br>
The patch for JDK-8155949 changed 'jbyte Atomic::cmpxchg()' which
eventually affected not to reload the variable 'entry' at
CardTableRS::write_ref_field_gc_par(), so
gc/cms/TestBubbleUpRef.java failed on ARM machine. And the patch for
JDK-8157904 fixed it.<br>
But without the patch for JDK-8157904, just adding 'volatile' also
fixes this problem.<br>
<br>
After founding the root cause, I saw another CR, "JDK-8033552: Fix
missing missing volatile specifiers in CAS operations in GC code"
also includes adding 'volatile' from its initial patch so I closed
this CR but the final patch didn't include this part intentionally.
After discussing with the author of JDK-8033552, Erik <span
id="assignee-val" class="view-issue-field"><span
class="user-hover" id="issue_summary_assignee_eosterlund"
rel="eosterlund">Ă–sterlund</span></span>, we decided to fix
under this CR.<br>
<br>
CR: <a class="moz-txt-link-freetext" href="https://bugs.openjdk.java.net/browse/JDK-8164038">https://bugs.openjdk.java.net/browse/JDK-8164038</a><br>
Webrev: <a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~sangheki/8164038/webrev.0">http://cr.openjdk.java.net/~sangheki/8164038/webrev.0</a><br>
Testing: JPRT<br>
<br>
Thanks,<br>
Sangheon
</body>
</html>