--- old/src/hotspot/share/runtime/globals.hpp 2019-10-17 17:28:58.000000000 -0400 +++ new/src/hotspot/share/runtime/globals.hpp 2019-10-17 17:28:57.000000000 -0400 @@ -716,11 +716,25 @@ product(intx, MonitorBound, 0, "(Deprecated) Bound Monitor population") \ range(0, max_jint) \ \ + diagnostic(bool, AsyncDeflateIdleMonitors, true, \ + "Deflate idle monitors using JavaThreads and the ServiceThread.") \ + \ + /* notice: the max range value here is max_jint, not max_intx */ \ + /* because of overflow issue */ \ + diagnostic(intx, AsyncDeflationInterval, 250, \ + "Async deflate idle monitors every so many milliseconds when " \ + "MonitorUsedDeflationThreshold is exceeded (0 is off).") \ + range(0, max_jint) \ + \ + diagnostic_pd(bool, HandshakeAfterDeflateIdleMonitors, \ + "Handshake with all JavaThreads after async deflating idle " \ + "monitors to force threads to leave C2 monitor code.") \ + \ experimental(intx, MonitorUsedDeflationThreshold, 90, \ - "Percentage of used monitors before triggering cleanup " \ - "safepoint which deflates monitors (0 is off). " \ - "The check is performed on GuaranteedSafepointInterval.") \ - range(0, 100) \ + "Percentage of used monitors before triggering deflation (0 is " \ + "off). The check is performed on GuaranteedSafepointInterval " \ + "or AsyncDeflateInterval.") \ + range(0, 100) \ \ experimental(intx, hashCode, 5, \ "(Unstable) select hashCode generation algorithm") \