< 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


  84 #define DTRACE_MONITOR_PROBE(probe, monitor, obj, thread)                  \
  85   {                                                                        \
  86     if (DTraceMonitorProbes) {                                             \
  87       DTRACE_MONITOR_PROBE_COMMON(obj, thread);                            \
  88       HOTSPOT_MONITOR_##probe(jtid,                                        \
  89                               (uintptr_t)(monitor), bytes, len);           \
  90     }                                                                      \
  91   }
  92 
  93 #else //  ndef DTRACE_ENABLED
  94 
  95 #define DTRACE_MONITOR_WAIT_PROBE(obj, thread, millis, mon)    {;}
  96 #define DTRACE_MONITOR_PROBE(probe, obj, thread, mon)          {;}
  97 
  98 #endif // ndef DTRACE_ENABLED
  99 
 100 // Tunables ...
 101 // The knob* variables are effectively final.  Once set they should
 102 // never be modified hence.  Consider using __read_mostly with GCC.
 103 
 104 int ObjectMonitor::Knob_InlineNotify = 1;
 105 int ObjectMonitor::Knob_Verbose      = 0;
 106 int ObjectMonitor::Knob_VerifyInUse  = 0;
 107 int ObjectMonitor::Knob_VerifyMatch  = 0;
 108 int ObjectMonitor::Knob_SpinLimit    = 5000;    // derived by an external tool -
 109 
 110 static int Knob_SpinBase            = 0;       // Floor AKA SpinMin
 111 static int Knob_CASPenalty          = -1;      // Penalty for failed CAS
 112 static int Knob_OXPenalty           = -1;      // Penalty for observed _owner change
 113 static int Knob_SpinSetSucc         = 1;       // spinners set the _succ field
 114 static int Knob_SpinEarly           = 1;
 115 static int Knob_SuccEnabled         = 1;       // futile wake throttling
 116 static int Knob_SuccRestrict        = 0;       // Limit successors + spinners to at-most-one
 117 static int Knob_MaxSpinners         = -1;      // Should be a function of # CPUs
 118 static int Knob_Bonus               = 100;     // spin success bonus
 119 static int Knob_BonusB              = 100;     // spin success bonus
 120 static int Knob_Penalty             = 200;     // spin failure penalty
 121 static int Knob_Poverty             = 1000;
 122 static int Knob_SpinAfterFutile     = 1;       // Spin after returning from park()
 123 static int Knob_FixedSpin           = 0;
 124 static int Knob_OState              = 3;       // Spinner checks thread state of _owner




  84 #define DTRACE_MONITOR_PROBE(probe, monitor, obj, thread)                  \
  85   {                                                                        \
  86     if (DTraceMonitorProbes) {                                             \
  87       DTRACE_MONITOR_PROBE_COMMON(obj, thread);                            \
  88       HOTSPOT_MONITOR_##probe(jtid,                                        \
  89                               (uintptr_t)(monitor), bytes, len);           \
  90     }                                                                      \
  91   }
  92 
  93 #else //  ndef DTRACE_ENABLED
  94 
  95 #define DTRACE_MONITOR_WAIT_PROBE(obj, thread, millis, mon)    {;}
  96 #define DTRACE_MONITOR_PROBE(probe, obj, thread, mon)          {;}
  97 
  98 #endif // ndef DTRACE_ENABLED
  99 
 100 // Tunables ...
 101 // The knob* variables are effectively final.  Once set they should
 102 // never be modified hence.  Consider using __read_mostly with GCC.
 103 

 104 int ObjectMonitor::Knob_Verbose      = 0;
 105 int ObjectMonitor::Knob_VerifyInUse  = 0;
 106 int ObjectMonitor::Knob_VerifyMatch  = 0;
 107 int ObjectMonitor::Knob_SpinLimit    = 5000;    // derived by an external tool -
 108 
 109 static int Knob_SpinBase            = 0;       // Floor AKA SpinMin
 110 static int Knob_CASPenalty          = -1;      // Penalty for failed CAS
 111 static int Knob_OXPenalty           = -1;      // Penalty for observed _owner change
 112 static int Knob_SpinSetSucc         = 1;       // spinners set the _succ field
 113 static int Knob_SpinEarly           = 1;
 114 static int Knob_SuccEnabled         = 1;       // futile wake throttling
 115 static int Knob_SuccRestrict        = 0;       // Limit successors + spinners to at-most-one
 116 static int Knob_MaxSpinners         = -1;      // Should be a function of # CPUs
 117 static int Knob_Bonus               = 100;     // spin success bonus
 118 static int Knob_BonusB              = 100;     // spin success bonus
 119 static int Knob_Penalty             = 200;     // spin failure penalty
 120 static int Knob_Poverty             = 1000;
 121 static int Knob_SpinAfterFutile     = 1;       // Spin after returning from park()
 122 static int Knob_FixedSpin           = 0;
 123 static int Knob_OState              = 3;       // Spinner checks thread state of _owner


< prev index next >