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

Improve G1 Full GC array marking

    Details

    • Type: Enhancement
    • Status: Resolved
    • Priority: P3
    • Resolution: Fixed
    • Affects Version/s: 11
    • Fix Version/s: 11
    • Component/s: hotspot
    • Subcomponent:
      gc
    • Resolved In Build:
      b07

      Description

      Currently when marking an object array it is split up to avoid one worker doing all the work. The code iterates over a chunk of the array and then push the rest to the marking stack, the problem with this is that if the iteration it self don't find any new pointers to follow, the next thing to do is to handle the next chunk in the array. This make work-stealing problematic for this case and the performance far from optimal.

      There are many schemes that can be used to improve the situation and we might want to dig into this more at some point but an easy fix to push the rest of the array onto the mark stack before doing the iteration actually helps quite a bit, since the window when work stealing is possible increases a lot.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                sjohanss Stefan Johansson
                Reporter:
                sjohanss Stefan Johansson
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: