<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <br>
    Hi Stefan,<br>
    <br>
    <div class="moz-cite-prefix">On 2015-04-22 11:46, Stefan Karlsson
      wrote:<br>
    </div>
    <blockquote cite="mid:55376E0D.9010409@oracle.com" type="cite">
      <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
      On 2015-04-22 10:30, Stefan Karlsson wrote:<br>
      <blockquote cite="mid:55375C2D.9010603@oracle.com" type="cite">
        <meta http-equiv="content-type" content="text/html;
          charset=utf-8">
        Hi,<br>
        <br>
        Please review this patch to move code out from PSParallelCompact
        into ParCompactionManager.<br>
        <br>
        There is a circular dependency between between PSParallelCompact
        and ParCompactionManager that makes it hard to move
        ParCompactionManager::push to psCompactionManager.inline.hpp,
        something that we need for <a moz-do-not-send="true"
          href="https://bugs.openjdk.java.net/browse/JDK-8076177"
          title="Remove usage of stack.inline.hpp functions from
          taskqueue.hpp">JDK-8076177</a>. <br>
        <br>
        The circular dependency can be seen with: <br>
         <the follow contents functions in
        psCompactionManager.cpp> <br>
          PSParallelCompact::mark_and_push <br>
           ParCompactionManager::push <br>
        <br>
        The suggested fix is to make mark_and_push a member of
        ParCompactionManager. The implementation already takes a
        ParCompactionManager as the first argument and it's used by
        other ParCompactionManager specific functions. <br>
        <br>
        The fix also moves the rest of the follow_* functions so that
        all marking code, which is done in multiple threads using
        separate ParCompactionManagers, are held together. <br>
        <br>
        <a moz-do-not-send="true" class="moz-txt-link-freetext"
          href="http://cr.openjdk.java.net/%7Estefank/8078345/webrev.01/">http://cr.openjdk.java.net/~stefank/8078345/webrev.01/</a><br>
        <a moz-do-not-send="true" class="moz-txt-link-freetext"
          href="https://bugs.openjdk.java.net/browse/JDK-8078345">https://bugs.openjdk.java.net/browse/JDK-8078345</a><br>
      </blockquote>
      <br>
      To be clear, this helps to resolve the circular dependency between
      psCompactionManager.inline.hpp and psParallelCompact.inline.hpp.
      There are still other circular dependencies between
      ParCompactionManager and PSParallelCompact.<br>
    </blockquote>
    <br>
    This looks good to me.<br>
    <br>
    Thanks,<br>
    Bengt<br>
    <br>
    <blockquote cite="mid:55376E0D.9010409@oracle.com" type="cite"> <br>
      Thanks,<br>
      StefanK<br>
      <br>
      <blockquote cite="mid:55375C2D.9010603@oracle.com" type="cite"> <br>
        Thanks,<br>
        StefanK<br>
      </blockquote>
      <br>
    </blockquote>
    <br>
  </body>
</html>