Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8013160

NPG: Remove unnecessary mark stack draining after CodeCache::do_unloading

    Details

    • Subcomponent:
      gc
    • Resolved In Build:
      b31

      Backports

        Description

        The PermGen Removal changed CompiledICHolders from being Java objects to C++ objects.

        CodeCache::do_unloading(...) used to take a keep_alive closure that was applied to CompiledICHolders deep down in nmethod::do_unloading. Since CompileICHolders don't move anymore, and we have other ways to keep them alive, we don't use the keep_alive closures in these functions anymore.

        Because of this, CodeCache::do_unloading will not populate the marking stacks, and we can remove the call to drain the stacks after the calls to CodeCache::do_unloading.

        This also has the neat effect that we now can verify that the marking has really completed before we start unloading classes, which makes the code easier to maintain/understand.

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  stefank Stefan Karlsson
                  Reporter:
                  stefank Stefan Karlsson
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: