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

Refactor strong root processing in order to allow G1 to evolve separately from GenCollectedHeap

    XMLWordPrintable

Details

    • Enhancement
    • Resolution: Fixed
    • P4
    • 9
    • 9
    • hotspot
    • gc
    • b59

    Backports

      Description

        Currently SharedHeap::process_strong_roots is called both by the GenCollectedHeap based collectors (CMS, Serial) and G1.

        Since G1 needs special cases for several pieces of the root processing SharedHeap needs to allow for that while attempting to maintain some layer of abstraction. This makes the SharedHeap code unnecessarily complex and makes it very difficult to reason about which combination of parameters are valid and possible.

        As a first step to improve the code I suggest that we copy the root processing code to a separate class for G1 and move the SharedHeap root processing to GenCollectedHeap. Future refactorings to unify the root processing at a different level of abstraction can hopefully be done using the new G1 root processor class.

        Attachments

          Issue Links

            Activity

              People

                mgerdin Mikael Gerdin (Inactive)
                mgerdin Mikael Gerdin (Inactive)
                Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved: