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

Parallel: Implement better work distribution for large object arrays in old gen

    XMLWordPrintable

Details

    • gc
    • b21

    Backports

      Description

        Currently Parallel GC young gc distributes work to find dirty cards on stripe basis (65k areas of memory): if an object starts in a stripe assigned to a thread, that thread owns that object to find dirty cards exclusively.

        This is a problem with large objArrays that limits parallelism: a single worker thread will own that objArray, limiting throughput.

        That should also fix the difference between parallel gc and g1 gc in pause times (4-5x+) for DelayInducer (JDK-8062128) found in JDK-8309960.

        Attachments

          1. BigArrayInOldGenRR.java
            1.0 kB
          2. card_scan_big_instances.java
            25 kB
          3. card_scan_scarce_2.java
            2 kB
          4. card_scan_scarce.java
            2 kB
          5. card_scan.java
            0.6 kB

          Issue Links

            Activity

              People

                rrich Richard Reingruber
                tschatzl Thomas Schatzl
                Votes:
                0 Vote for this issue
                Watchers:
                8 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved: