<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Hi Jesper,<br>
      <br>
      On 5/2/16 11:22 AM, Jesper Wilhelmsson wrote:<br>
    </div>
    <blockquote
      cite="mid:105bcd03-ccb4-b89b-4237-7d1abd3f8248@oracle.com"
      type="cite">Hi,
      <br>
      <br>
      A new version of the patch is now available:
      <br>
      <br>
      <a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~jwilhelm/8114823/webrev.02/">http://cr.openjdk.java.net/~jwilhelm/8114823/webrev.02/</a>
      <br>
      <br>
      Based on comments from Mikael, Derek, and Stefan K I have made the
      following changes:
      <br>
      <br>
      * CMSClassUnloadingEnabled is removed for real and made an alias
      of ClassUnloadingWithConcurrentMark. This removes the questionable
      code when initializing the flags.
      <br>
      <br>
      * A new call to unload nmethods if class unloading is disabled in
      psMarkSweep, psParallelCompact, and genMarkSweep. It turned out
      that in some cases the call to unload nmethods is needed even if
      we do not perform class unloading.
      <br>
    </blockquote>
    My only question is why don't we need to do that for G1 also? We
    used to, but change at g1MarkSweep.cpp:Line 165 means we don't
    anymore?<br>
    <br>
    The rest looks good to me.<br>
    <br>
     - Derek<br>
    <meta http-equiv="content-type" content="text/html;
      charset=windows-1252">
    <blockquote
      cite="mid:105bcd03-ccb4-b89b-4237-7d1abd3f8248@oracle.com"
      type="cite">
      <br>
      Thanks,
      <br>
      /Jesper
      <br>
      <br>
      <br>
      Den 31/3/16 kl. 15:51, skrev Jesper Wilhelmsson:
      <br>
      <blockquote type="cite">Hi,
        <br>
        <br>
        Please review this change to make the GCs disable class
        unloading if disabled on
        <br>
        the command line.
        <br>
        <br>
        There are a few parts in this change:
        <br>
        <br>
        1. The flag ClassUnloadingWithConcurrentMark was not set to
        false if
        <br>
        ClassUnloading was disabled on the command line. This is now
        done.
        <br>
        <br>
        2. CMS was using CMSClassUnloadingEnabled instead of the more
        generic
        <br>
        ClassUnloadingWithConcurrentMark. I changed so that
        <br>
        ClassUnloadingWithConcurrentMark is used all over and
        CMSClassUnloadingEnabled
        <br>
        is only used as an alias when initializing the arguments. At
        some point it would
        <br>
        be nice to deprecate CMSClassUnloadingEnabled but it is a fairly
        well known flag
        <br>
        so that's not part of this change.
        <br>
        <br>
        3. CMS, Serial, and PS did correctly disable class unloading
        when told so, but
        <br>
        the outermost code witch included some logging was still enabled
        making class
        <br>
        unloading output present in the log file. I changed so that this
        code is also
        <br>
        disabled.
        <br>
        <br>
        4. G1 did not disable class unloading during full GCs at all.
        This is now done.
        <br>
        <br>
        Testing: I used SecureDBBTest.java as suggested in the bug while
        fixing to
        <br>
        verify that class unloading was happening before the fix and not
        after. I also
        <br>
        ran it through JPRT.
        <br>
        <br>
        Bug: <a class="moz-txt-link-freetext" href="https://bugs.openjdk.java.net/browse/JDK-8114823">https://bugs.openjdk.java.net/browse/JDK-8114823</a>
        <br>
        Webrev: <a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~jwilhelm/8114823/webrev.00/">http://cr.openjdk.java.net/~jwilhelm/8114823/webrev.00/</a>
        <br>
        <br>
        Thanks,
        <br>
        /Jesper
        <br>
      </blockquote>
    </blockquote>
    <br>
  </body>
</html>