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

Switch mark bitmaps during Remark

    Details

    • Type: Enhancement
    • Status: Resolved
    • Priority: P4
    • Resolution: Fixed
    • Affects Version/s: 9, 10
    • Fix Version/s: 11
    • Component/s: hotspot
    • Labels:
    • Subcomponent:
      gc
    • Resolved In Build:
      b11

      Description

      Currently G1 switches the mark bitmaps during the Cleanup pause, making the recent object liveness gathering visible to G1 there.

      Since the mark bitmaps are current after Remark, switching them during Cleanup only prolongs the time when already dead objects are kept live.

      The only use of the next bitmap between these two phases seems to be gathering summary live data - however it could as easily use the other bitmap for that purpose during that time

      This may or may not make a difference particularly in conjunction with eager reclaim, as this would allow releasing humongous objects earlier (noticed e.g. in specjvm2008-sparse.large and fft.large if you artificially lengthen the time between remark and cleanup pause).

      Investigate if there are any additional side effects swapping the bitmaps earlier and if possible, switch the mark bitmaps immediately at remark.

      This behavior has been this way since day one. However, with JDK-8077144 the pause between Remark and Cleanup has been lengthened significantly (although overall that change decreased the length of the marking cycle).
      Implementing this will shorten the time between start of marking and being able to reclaim found dead objects significantly.

        Attachments

          Issue Links

            Activity

              People

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

                Dates

                • Created:
                  Updated:
                  Resolved: