--- old/src/hotspot/share/runtime/objectMonitor.cpp 2018-09-17 23:29:32.519745609 -0700 +++ new/src/hotspot/share/runtime/objectMonitor.cpp 2018-09-17 23:29:32.267745617 -0700 @@ -103,7 +103,6 @@ int ObjectMonitor::Knob_SpinLimit = 5000; // derived by an external tool - -static int Knob_SuccEnabled = 1; // futile wake throttling static int Knob_SuccRestrict = 0; // Limit successors + spinners to at-most-one static int Knob_MaxSpinners = -1; // Should be a function of # CPUs static int Knob_Bonus = 100; // spin success bonus @@ -1242,7 +1241,7 @@ // 2. ST _owner = NULL // 3. unpark(wakee) - _succ = Knob_SuccEnabled ? Wakee->_thread : NULL; + _succ = Wakee->_thread; ParkEvent * Trigger = Wakee->_event; // Hygiene -- once we've set _owner = NULL we can't safely dereference Wakee again.