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

Tighten condition for excluding regions from collecting cards with cross-references

    XMLWordPrintable

    Details

    • Subcomponent:
      gc
    • Resolved In Build:
      b17

      Description

      During evacuation, particularly during evacuation failure, we collect locations (cards) with inter-region references to regions that need an up-to-date remembered set.

      There is (typically) one filter before each enqueue action that filters out such references from the young generation.

      This filter is too coarse, it catches regions from the whole young generation (i.e. current eden regions used in this collection and survivor regions which are the eden regions of the next gc), but when there is an evacuation failure live objects will stay in the current eden regions, and need the cards *from* these regions.

      Currently during evacuation failure handling (fixup self forwards) we recreate those by rescanning the live objects in the eden regions.

      This could be avoided by adding an explicit "new eden/survivor" regions tag in G1HeapRegionAttr and use this to get an exact filter.

      A prototype is available at https://github.com/tschatzl/jdk/tree/submit/evac-failure-no-scan-during-remove-self-forwards

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              tschatzl Thomas Schatzl
              Reporter:
              tschatzl Thomas Schatzl
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: