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