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

Shenandoah: remove CM-with-UR piggybacking cycles

    Details

    • Subcomponent:
      gc
    • Resolved In Build:
      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

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

                  Dates

                  • Created:
                    Updated:
                    Resolved: