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

Shenandoah: remove CM-with-UR piggybacking cycles

    XMLWordPrintable

Details

    • gc
    • b14

    Backports

      Description

        Current Shenandoah is able to piggyback the update references on the next concurrent mark. This feature was in Shenandoah from day one. The major benefit at that time was about skipping the update references pass over the heap.

        It does, however, run into problems:
         a) It hoards the collection set until next cycle is done. This is a major issue, because the next cycle would come much sooner since the free space is now taken by collection set.
         b) Heuristics needs to decide whether to do this shortcut or not, leading to awkward control problems, where that decision might be incorrect;
         c) A lot of code assumes that there could be forwarded objects during concurrent mark.

        In field testing, diving into such a piggyback cycle usually means the collector is running back-to-back cycles, which implies it has no breathing room. So, CM-with-UR cycle is already deemed the awkward mode to run in.

        We should consider removing this feature to ease maintenance.

        Attachments

          Issue Links

            Activity

              People

                shade Aleksey Shipilev
                shade Aleksey Shipilev
                Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved: