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

Improve g1 evacuation failure injector performance

    XMLWordPrintable

    Details

    • Subcomponent:
      gc
    • Resolved In Build:
      b17

      Description

      G1's evacuation failure injector is typically used for testing evacuation failure handling code, causing evacuation failures.

      This helps finding issues with evacuation failure handling; as such, since this is debug-only code, it is completely disabled (compiled out) in product code.

      For region pinning for performance measurements we found when manually enabling it in product mode the current implementation causes significant performance regressions on some systems (see JDK-8273309) by itself, making performance work for region pinning (g1 uses evacuation failure handling for handling pinned regions) unusable.

      The reason seems to be that reading and writing G1YoungGCEvacFailureInjector::_evacuation_failure_object_count without synchronization by multiple threads millions of times per gc causes a huge slowdown.

      Since we need/use this mechanism for performance work, improve the implementation to have much less performance impact by itself.

        Attachments

          Issue Links

            Activity

              People

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

                Dates

                Created:
                Updated:
                Resolved: