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