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

Net PLAB size is clipped to max PLAB size as a whole, not on a per thread basis

    Details

    • Subcomponent:
      gc
    • Introduced In Version:
      9
    • Resolved In Build:
      b115

      Description

      Beginning with JDK-8079555 the desired PLAB size for use during GC is calculated as a "net" size, i.e. without taking the number of threads into account.

      This results in way too small PLAB sizes particularly on large machines, because that net value is later divided by the number of threads, because that net size is clipped to the max value at calculation time. So instead of allowing the max value on a per-thread basis, we only allow the max value on a global basis.

      This results in significant performance reduction due to extremely frequent use of direct allocation instead of PLABs on machines with many threads.

      The fix is to do the clipping calculation when handing out the buffers, not before.

        Attachments

          Issue Links

            Activity

              People

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

                Dates

                • Created:
                  Updated:
                  Resolved: