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

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

XMLWordPrintable

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

      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,                          \

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

              Created:
              Updated:
              Resolved: