112 * before it is worth going there. Expressed as a multiple of latency.
113 */
114 uint32_t cpupm_cs_sample_interval = 100*1000*1000; /* 100 milliseconds */
115 uint32_t cpupm_cs_idle_cost_tunable = 10; /* work time / latency cost */
116 uint32_t cpupm_cs_idle_save_tunable = 2; /* idle power savings */
117 uint16_t cpupm_C2_idle_pct_tunable = 70;
118 uint16_t cpupm_C3_idle_pct_tunable = 80;
119
120 #ifndef __xpv
121 extern boolean_t cpupm_intel_init(cpu_t *);
122 extern boolean_t cpupm_amd_init(cpu_t *);
123
124 typedef struct cpupm_vendor {
125 boolean_t (*cpuv_init)(cpu_t *);
126 } cpupm_vendor_t;
127
128 /*
129 * Table of supported vendors.
130 */
131 static cpupm_vendor_t cpupm_vendors[] = {
132 cpupm_intel_init,
133 cpupm_amd_init,
134 NULL
135 };
136 #endif
137
138 /*
139 * Initialize the machine.
140 * See if a module exists for managing power for this CPU.
141 */
142 /*ARGSUSED*/
143 void
144 cpupm_init(cpu_t *cp)
145 {
146 #ifndef __xpv
147 cpupm_vendor_t *vendors;
148 cpupm_mach_state_t *mach_state;
149 struct machcpu *mcpu = &(cp->cpu_m);
150 static boolean_t first = B_TRUE;
151 int *speeds;
152 uint_t nspeeds;
153 int ret;
154
|
112 * before it is worth going there. Expressed as a multiple of latency.
113 */
114 uint32_t cpupm_cs_sample_interval = 100*1000*1000; /* 100 milliseconds */
115 uint32_t cpupm_cs_idle_cost_tunable = 10; /* work time / latency cost */
116 uint32_t cpupm_cs_idle_save_tunable = 2; /* idle power savings */
117 uint16_t cpupm_C2_idle_pct_tunable = 70;
118 uint16_t cpupm_C3_idle_pct_tunable = 80;
119
120 #ifndef __xpv
121 extern boolean_t cpupm_intel_init(cpu_t *);
122 extern boolean_t cpupm_amd_init(cpu_t *);
123
124 typedef struct cpupm_vendor {
125 boolean_t (*cpuv_init)(cpu_t *);
126 } cpupm_vendor_t;
127
128 /*
129 * Table of supported vendors.
130 */
131 static cpupm_vendor_t cpupm_vendors[] = {
132 { cpupm_intel_init },
133 { cpupm_amd_init },
134 { NULL }
135 };
136 #endif
137
138 /*
139 * Initialize the machine.
140 * See if a module exists for managing power for this CPU.
141 */
142 /*ARGSUSED*/
143 void
144 cpupm_init(cpu_t *cp)
145 {
146 #ifndef __xpv
147 cpupm_vendor_t *vendors;
148 cpupm_mach_state_t *mach_state;
149 struct machcpu *mcpu = &(cp->cpu_m);
150 static boolean_t first = B_TRUE;
151 int *speeds;
152 uint_t nspeeds;
153 int ret;
154
|