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

G1: Merge Heap Roots phase incorrectly clears young gen remembered set every time

XMLWordPrintable

    • gc

      During merging heap roots the existing code always updates the young gen length and clears the young gen remembered set card set.

      In case of optional evacuation, this causes some bugs:
      * after the initial evacuation, the young gen card set is empty, i.e. occupied is empty, and so the value passed to the predictors zero. Messes up the predictions a fair bit.
      * clearing the young gen card set every merge heap root clears the regions associated with the young gen remset. Current code does not use them except for logging, so logging is wrong.

      Fortunately no cards are added to the young gen remset during evacuation, so there is no risk of missing remembered sets.

            tschatzl Thomas Schatzl
            tschatzl Thomas Schatzl
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: