<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Hello Kevin,<br>
<br>
<div class="moz-cite-prefix">On 1/7/2016 8:28 AM, Kevin Walls wrote:<br>
</div>
<blockquote cite="mid:568E9248.5020008@oracle.com" type="cite">
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
<br>
Thanks Poonam, that looks good to me. 8-)<br>
<br>
OK, maybe we abort somehow if os::malloc returns null, and maybe:<br>
<br>
tty->print_cr("VerifySubSet:%s is unknown, skipping it.",
token);<br>
should be:<br>
tty->print_cr("VerifySubSet: '%s' is unknown, skipping it.",
token);<br>
<br>
</blockquote>
Fixed it: <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>
<blockquote cite="mid:568E9248.5020008@oracle.com" type="cite">
..but nothing more from me!<br>
</blockquote>
<br>
Thanks,<br>
Poonam<br>
<br>
<blockquote cite="mid:568E9248.5020008@oracle.com" type="cite"> <br>
Thanks<br>
Kevin<br>
<br>
<br>
<div class="moz-cite-prefix">On 07/01/2016 14:28, Poonam Bajaj
Parhar wrote:<br>
</div>
<blockquote cite="mid:568E761B.2060007@oracle.com" type="cite">
<meta content="text/html; charset=UTF-8"
http-equiv="Content-Type">
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 moz-do-not-send="true" class="moz-txt-link-freetext"
href="http://cr.openjdk.java.net/%7Epoonam/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>
</blockquote>
<br>
</blockquote>
<br>
</body>
</html>