<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Hello Kevin,<br>
<br>
Thanks for looking at the changes and for your feedback.<br>
<br>
<div class="moz-cite-prefix">On 1/5/2016 1:08 PM, Kevin Walls wrote:<br>
</div>
<blockquote cite="mid:568C30DA.7080107@oracle.com" type="cite">
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
Hi Poonam,<br>
<br>
Great, I think it looks good, and really look forward to having
this ability to fine-tune what we verify, rather than being so
heavyweight about it!<br>
<br>
I just noticed: should_verify_subset("heap") and <span
class="new">should_verify_subset("c-heap") are going to clash?
If you specify c-heap, you'll trigger both verifications as
strstr finds "heap" in there? Do you want to change heap to
java-heap, or maybe use java_heap and c_heap (if you want to use
underscores to be consistent with symbol_table, string_table),
or something else to make them not clash?<br>
<br>
</span></blockquote>
Yes, it is a problem with the current code. To avoid this problem
and such future problems when we may add more subsets, I have
updated the code to parse the SubSet string once and store the
choices in a flag. And when we need to verify, we check for the bits
in this flag.<br>
<br>
<blockquote cite="mid:568C30DA.7080107@oracle.com" type="cite"><span
class="new"> <br>
</span>(As we discussed over email briefly, another possibility
was splitting the given argument string on commas, doing our
string comparisons once only during argument processing somewhere,
and populating a long of flag bits, so Universe::verify() just
checks for presence of bits, rather than comparing lots of
characters. The speed isn't a particular worry right now so your
very readable string comparisons do the job!)<br>
</blockquote>
<br>
Here's the updated webrev:<br>
<a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~poonam/8072725/webrev.02/">http://cr.openjdk.java.net/~poonam/8072725/webrev.02/</a><br>
<br>
regards,<br>
Poonam<br>
<br>
<blockquote cite="mid:568C30DA.7080107@oracle.com" type="cite"> <br>
Thanks<br>
Kevin<br>
<br>
<br>
<blockquote cite="mid:568AC126.1000402@oracle.com" type="cite">
<div class="moz-forward-container"><br>
-------- Original Message --------
<table class="moz-email-headers-table" cellpadding="0"
cellspacing="0" border="0">
<tbody>
<tr>
<th align="RIGHT" nowrap="nowrap" valign="BASELINE">Subject:
</th>
<td>Re: RFR: JDK-8072725: Provide more granular levels
for GC verification</td>
</tr>
<tr>
<th align="RIGHT" nowrap="nowrap" valign="BASELINE">Date:
</th>
<td>Wed, 23 Dec 2015 09:53:21 -0800</td>
</tr>
<tr>
<th align="RIGHT" nowrap="nowrap" valign="BASELINE">From:
</th>
<td>Jon Masamitsu <a moz-do-not-send="true"
class="moz-txt-link-rfc2396E"
href="mailto:jon.masamitsu@oracle.com"><jon.masamitsu@oracle.com></a></td>
</tr>
<tr>
<th align="RIGHT" nowrap="nowrap" valign="BASELINE">Organization:
</th>
<td>Oracle Corporation</td>
</tr>
<tr>
<th align="RIGHT" nowrap="nowrap" valign="BASELINE">To:
</th>
<td><a moz-do-not-send="true"
class="moz-txt-link-abbreviated"
href="mailto:hotspot-gc-dev@openjdk.java.net">hotspot-gc-dev@openjdk.java.net</a></td>
</tr>
</tbody>
</table>
<br>
<br>
<meta content="text/html; charset=UTF-8"
http-equiv="Content-Type">
<br>
<br>
<div class="moz-cite-prefix">On 12/23/2015 9:26 AM, Poonam
Bajaj Parhar wrote:<br>
</div>
<blockquote cite="mid:567AD949.204@oracle.com" type="cite">
<meta content="text/html; charset=UTF-8"
http-equiv="Content-Type">
Hello Jon,<br>
<br>
I have added a testcase to test the VerifySubSet option:<br>
<a moz-do-not-send="true" class="moz-txt-link-freetext"
href="http://cr.openjdk.java.net/%7Epoonam/8072725/webrev.01/">http://cr.openjdk.java.net/~poonam/8072725/webrev.01/</a><br>
<br>
Here, I run the test with one set of VerifySubSet options,
and then check the output that those sub-systems were
verified and the ones not specified were not verified.<br>
</blockquote>
<br>
Excellent. Thanks for adding the test.<br>
<br>
Reviewed.<br>
<br>
Jon<br>
<br>
<blockquote cite="mid:567AD949.204@oracle.com" type="cite"> <br>
Thanks,<br>
Poonam<br>
<br>
<div class="moz-cite-prefix">On 12/22/2015 7:43 AM, Jon
Masamitsu wrote:<br>
</div>
<blockquote cite="mid:56796FB8.5040302@oracle.com"
type="cite">
<meta content="text/html; charset=UTF-8"
http-equiv="Content-Type">
<br>
<br>
<div class="moz-cite-prefix">On 12/21/2015 4:40 PM, Poonam
Bajaj Parhar wrote:<br>
</div>
<blockquote cite="mid:56789BED.3020304@oracle.com"
type="cite">
<meta content="text/html; charset=UTF-8"
http-equiv="Content-Type">
Hello Jon,<br>
<br>
<div class="moz-cite-prefix">On 12/21/2015 2:29 PM, Jon
Masamitsu wrote:<br>
</div>
<blockquote cite="mid:56787D5B.50806@oracle.com"
type="cite">
<meta content="text/html; charset=UTF-8"
http-equiv="Content-Type">
<font face="Times New Roman, Times, serif">Poonam,<br>
<br>
Some of the string list parameters allow separation
by , or " ". Did<br>
you consider adding that?<br>
<br>
</font></blockquote>
<font face="Times New Roman, Times, serif">The </font>VerifySubSet
string list can accept the strings separated by comma or
a space. Before verification, we just need to check if a
particular subset is present in the VerifySubSet list or
not. We don't need any complicated processing of the
strings list here.<br>
</blockquote>
<br>
Ok. Thanks for the explanation.<br>
<br>
You mention in the RFR that you have a simple test to test
the<br>
change. Can you add that as a jtreg test? I'm thinking
about<br>
something like<br>
<br>
test/gc/TestVerifyDuringStartup.java<br>
test/gc/TestVerifySilently.java<br>
<br>
Jon<br>
<br>
<blockquote cite="mid:56789BED.3020304@oracle.com"
type="cite"> <br>
Thanks,<br>
Poonam<br>
<br>
<blockquote cite="mid:56787D5B.50806@oracle.com"
type="cite"><font face="Times New Roman, Times, serif">
Jon<br>
<br>
PS. See share/vm/compiler/compilerDirectives.cpp<br>
<br>
ccstrlist
DirectiveSet::canonicalize_disableintrinsic(ccstrlist
option_value)<br>
<br>
</font><br>
<div class="moz-cite-prefix">On 12/15/2015 03:15 PM,
Poonam Bajaj Parhar wrote:<br>
</div>
<blockquote cite="mid:56709EF7.9020003@oracle.com"
type="cite">
<meta http-equiv="content-type" content="text/html;
charset=UTF-8">
Hello,<br>
<br>
Please review these changes that split up the work
done under Verify*GC options. This will be very
useful in debugging GC issues/crashes where
verifying the whole memory system with Verify*GC
options slows down the process and makes it
impossible to reproduce the problem.<br>
<br>
The changes introduce a new option <i>VerifySubSet</i><i>
</i>that can be used to specify the specific memory
sub-systems that one wants to verify. It can be one
or more of the sub-systems from these: threads,
heap, symbol_table, string_table, codecache,
dictionary, classloader_data_graph, metaspace,
jni_handles, c-heap and codecache_oops. If nothing
is specified with <i>VerifySubSet</i> then whole of
the memory system is verified with Verify*GC
options.<br>
<br>
Bug:<a moz-do-not-send="true" class="issue-link"
data-issue-key="JDK-8072725"
href="https://bugs.openjdk.java.net/browse/JDK-8072725"
id="key-val" rel="4767373"> JDK-8072725:</a>
Provide more granular levels for GC verification<br>
Webrev: <a moz-do-not-send="true"
class="moz-txt-link-freetext"
href="http://cr.openjdk.java.net/%7Epoonam/8072725/webrev.00/">http://cr.openjdk.java.net/~poonam/8072725/webrev.00/</a><br>
Testing: JPRT, tested the changes with a simple test
program.<br>
<br>
Thanks,<br>
Poonam<br>
<br>
<br>
<br>
<br>
</blockquote>
<br>
</blockquote>
<br>
</blockquote>
<br>
</blockquote>
<br>
</blockquote>
<br>
<br>
</div>
<br>
</blockquote>
<br>
</blockquote>
<br>
</body>
</html>