< prev index next >

src/hotspot/share/runtime/objectMonitor.cpp

Print this page
rev 51780 : imported patch syncknobs-00-base
rev 51781 : imported patch syncknobs-01-Knob_ReportSettings
rev 51782 : imported patch syncknobs-02-Knob_SpinBackOff
rev 51783 : imported patch syncknobs-03-BackOffMask
rev 51784 : imported patch syncknobs-04-Knob_ExitRelease
rev 51785 : imported patch syncknobs-05-Knob_InlineNotify
rev 51786 : imported patch syncknobs-06-Knob_Verbose
rev 51787 : imported patch syncknobs-07-Knob_VerifyInUse
rev 51788 : imported patch syncknobs-08-Knob_VerifyMatch
rev 51789 : imported patch syncknobs-09-Knob_SpinBase
rev 51790 : imported patch syncknobs-10-Knob_CASPenalty
rev 51791 : imported patch syncknobs-11-Knob_OXPenalty
rev 51792 : imported patch syncknobs-12-Knob_SpinSetSucc
rev 51793 : imported patch syncknobs-13-Knob_SpinEarly
rev 51794 : imported patch syncknobs-14-Knob_SuccEnabled
rev 51795 : imported patch syncknobs-15-Knob_SuccRestrict
rev 51796 : imported patch syncknobs-16-Knob_MaxSpinners
rev 51797 : imported patch syncknobs-17-Knob_SpinAfterFutile
rev 51798 : imported patch syncknobs-18-Knob_OState

*** 106,116 **** static int Knob_Bonus = 100; // spin success bonus static int Knob_BonusB = 100; // spin success bonus static int Knob_Penalty = 200; // spin failure penalty static int Knob_Poverty = 1000; static int Knob_FixedSpin = 0; - static int Knob_OState = 3; // Spinner checks thread state of _owner static int Knob_UsePause = 1; static int Knob_ExitPolicy = 0; static int Knob_PreSpin = 10; // 20-100 likely better static int Knob_ResetEvent = 0; --- 106,115 ----
*** 1829,1839 **** // hold the duration constant but vary the frequency. ctr = _SpinDuration; if (ctr <= 0) return 0; ! if (Knob_OState && NotRunnable (Self, (Thread *) _owner)) { return 0; } // We're good to spin ... spin ingress. // CONSIDER: use Prefetch::write() to avoid RTS->RTO upgrades --- 1828,1838 ---- // hold the duration constant but vary the frequency. ctr = _SpinDuration; if (ctr <= 0) return 0; ! if (NotRunnable(Self, (Thread *) _owner)) { return 0; } // We're good to spin ... spin ingress. // CONSIDER: use Prefetch::write() to avoid RTS->RTO upgrades
*** 1921,1931 **** // Abort the spin if the owner is not executing. // The owner must be executing in order to drop the lock. // Spinning while the owner is OFFPROC is idiocy. // Consider: ctr -= RunnablePenalty ; ! if (Knob_OState && NotRunnable (Self, ox)) { goto Abort; } if (_succ == NULL) { _succ = Self; } --- 1920,1930 ---- // Abort the spin if the owner is not executing. // The owner must be executing in order to drop the lock. // Spinning while the owner is OFFPROC is idiocy. // Consider: ctr -= RunnablePenalty ; ! if (NotRunnable(Self, ox)) { goto Abort; } if (_succ == NULL) { _succ = Self; }
< prev index next >