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

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

    Details

    • Type: Enhancement
    • Status: Resolved
    • Priority: P4
    • Resolution: Fixed
    • Affects Version/s: 9
    • Fix Version/s: 9
    • Component/s: hotspot
    • Labels:
    • Subcomponent:
      gc
    • Resolved In Build:
      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

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

                  Dates

                  • Created:
                    Updated:
                    Resolved: