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

Improve g1 evacuation failure injector performance

    XMLWordPrintable

Details

    • gc
    • 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

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

              Dates

                Created:
                Updated:
                Resolved: