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

Regression in SPECjvm2008.sparse-large because of changes to marking cycle in JDK-8017744

    Details

    • Subcomponent:
      gc

      Description

      In 9b116 SPECjvm2008.sparse-large regressed by about 10% compared to 9b115 on x64.

      Analysis (see comments) showed that this is some bad interaction between some compiler optimization and the changes to the concurrent marking cycle.

      In particular, in 9b116 the work done during marking has been split into two concurrent phases, marking as usual (before the Remark phase), and calculating live data information (after Remark and before Cleanup).

      In general, this decreased the length of concurrent cycles significantly. Now, this benchmark seems to starve the CPU the marking (and the control) threads get. Now since we have some additional work to do (previously Remark and Cleanup basically occur back-to-back so for some reason this is "okay"), this lengthens the concurrent phase and decreases G1 performance significantly.

      This problem goes away with -XX:+UseCountedLoopSafepoints.

        Attachments

          Issue Links

            Activity

              People

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

                Dates

                • Created:
                  Updated:
                  Resolved: