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
Introduce the product command line option
G1EvacuationFailureALotCSetPercent to set the percent of the regions in cset that will fail evacuation.
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.
Allow the user set the percent of the regions in cset that will fail evacuation.
--- 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, \