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

G1: Allow forced evacuation failure of first N regions in collection set

    XMLWordPrintable

    Details

    • Subcomponent:
      gc
    • Compatibility Kind:
      behavioral
    • Compatibility Risk:
      minimal
    • Compatibility Risk Description:
      The flag did not exist before. The main usage of this product option is for debug/performance test of evacuation failure mechanism.
    • Interface Kind:
      add/remove/modify command line option
    • Scope:
      Implementation

      Description

      Summary

      Introduce the product command line option G1EvacuationFailureALotCSetPercent to set the percent of the regions in cset that will fail evacuation.

      Problem

      Currently, product options of evacuation failure, like G1EvacuationFailureALotInterval and G1EvacuationFailureALotCount only config the ratio of objects failing evacuation, basically the distribution of objects failing evacuation is even among regions.

      JDK-8256265 is trying to improve parallelism in regions that failed evacuation, it'll be helpful if there is option to config the distribution of objects failing evacuation among regions, so implementation of JDK-8256265 could be profiled more precisely.

      The implementation will be to select regions from start, i.e. not randomly, the motivation is to configure a more stable selection of evacuation failure regions, which will help verify the effect of JDK-8256265 implementation.

      Solution

      Allow the user set the percent of the regions in cset that will fail evacuation.

      Specification

      --- a/src/hotspot/share/gc/g1/g1_globals.hpp
      +++ b/src/hotspot/share/gc/g1/g1_globals.hpp
      @@ -73,7 +73,12 @@
                                                                                   \
         product(bool, G1EvacuationFailureALotDuringMixedGC, true,                 \
                 "Force use of evacuation failure handling during mixed "          \
      -          "evacuation pauses")
      +          "evacuation pauses")                                              \
      +                                                                            \
      +  product(uint, G1EvacuationFailureALotCSetPercent, 100,                    \
      +          "Percent of the regions in cset that will fail evacuation, "      \
      +          "regions will be selected from start rather than randomly.")      \
      +          range(1, 100)
       #else
       #define GC_G1_EVACUATION_FAILURE_FLAGS(develop,                             \
                                              develop_pd,                          \

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              mli Hamlin Li
              Reporter:
              mli Hamlin Li
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: