<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    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>
      <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>
    <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" border="0"
          cellpadding="0" cellspacing="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>
  </body>
</html>