summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorAnup Pemmaiah <Napanda.Pemmaiah@Sun.COM>2009-10-23 11:50:59 -0400
committerAnup Pemmaiah <Napanda.Pemmaiah@Sun.COM>2009-10-23 11:50:59 -0400
commit29091f177aaaca472c062f5f3f5d66ac1799e1a7 (patch)
tree32d70ae02a4889bdd94f17af5a46bb2325d6c9e2 /usr/src
parent6edb4230a40618bae549a7adf7bffcbd0fdba3d2 (diff)
downloadillumos-gate-29091f177aaaca472c062f5f3f5d66ac1799e1a7.tar.gz
6892621 x4440 hits mach_state->ms_cstate.cma_domain != NULL with 10/13 bits
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/uts/i86pc/os/cpupm/cpupm_mach.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/usr/src/uts/i86pc/os/cpupm/cpupm_mach.c b/usr/src/uts/i86pc/os/cpupm/cpupm_mach.c
index cbd2409025..0ea8197075 100644
--- a/usr/src/uts/i86pc/os/cpupm/cpupm_mach.c
+++ b/usr/src/uts/i86pc/os/cpupm/cpupm_mach.c
@@ -207,6 +207,8 @@ cpupm_init(cpu_t *cp)
mach_state->ms_caps |= CPUPM_P_STATES;
}
}
+ } else {
+ cpupm_disable(CPUPM_P_STATES);
}
if (mach_state->ms_tstate.cma_ops != NULL) {
@@ -217,6 +219,8 @@ cpupm_init(cpu_t *cp)
} else {
mach_state->ms_caps |= CPUPM_T_STATES;
}
+ } else {
+ cpupm_disable(CPUPM_T_STATES);
}
/*
@@ -249,6 +253,8 @@ cpupm_init(cpu_t *cp)
idle_cpu = non_deep_idle_cpu;
disp_enq_thread = non_deep_idle_disp_enq_thread;
}
+ } else {
+ cpupm_disable(CPUPM_C_STATES);
}
@@ -267,9 +273,15 @@ cpupm_init(cpu_t *cp)
mach_state->ms_caps & CPUPM_P_STATES,
mach_state->ms_caps & CPUPM_C_STATES);
}
- cpupm_throttle_manage_notification(cp);
- cpuidle_manage_cstates(cp);
- cpupm_power_manage_notifications(cp);
+ if (mach_state->ms_caps & CPUPM_T_STATES) {
+ cpupm_throttle_manage_notification(cp);
+ }
+ if (mach_state->ms_caps & CPUPM_C_STATES) {
+ cpuidle_manage_cstates(cp);
+ }
+ if (mach_state->ms_caps & CPUPM_P_STATES) {
+ cpupm_power_manage_notifications(cp);
+ }
cpupm_add_notify_handler(cp, cpupm_event_notify_handler, cp);
}
first = B_FALSE;