I tested setting the LoopStripMiningIter which complained that UseCountedLoopSafepoints is off:
Java HotSpot(TM) 64-Bit Server VM warning: Disabling counted safepoints implies no loop strip mining: setting LoopStripMiningIter to 0
In g1Arguments.cpp G1Arguments::initialize()
We do:
#ifdef COMPILER2
// Enable loop strip mining to offer better pause time guarantees
if (FLAG_IS_DEFAULT(UseCountedLoopSafepoints)) {
We should not give a warning and turn LoopStripMiningIter off.
[rehn@rehn-ws dev-jdk]$ java -XX:+PrintFlagsFinal -version | grep "Strip\|UseCountedLoopSafepoints"
uintx LoopStripMiningIter = 1000 {C2 product} {default}
uintx LoopStripMiningIterShortLoop = 100 {C2 product} {default}
bool UseCountedLoopSafepoints = true {C2 product} {default}
[rehn@rehn-ws dev-jdk]$ java -XX:LoopStripMiningIter=100 -XX:+PrintFlagsFinal -version | grep "Strip\|UseCountedLoopSafepoints"
OpenJDK 64-Bit Server VM warning: Disabling counted safepoints implies no loop strip mining: setting LoopStripMiningIter to 0
uintx LoopStripMiningIter = 0 {C2 product} {command line}
uintx LoopStripMiningIterShortLoop = 0 {C2 product} {default}
bool UseCountedLoopSafepoints = true {C2 product} {default}