diff options
author | Boris Ostrovsky <boris.ostrovsky@amd.com> | 2012-03-13 14:55:09 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2012-03-30 03:23:01 -0400 |
commit | 1a022e3f1be11730bd8747b1af96a0274bf6356e (patch) | |
tree | d3c95b68626ac7d963ac3a85a07dae1cfc011906 /arch | |
parent | e07510585a88c0f6c6c728e2e006aa913496d4ae (diff) |
idle, x86: Allow off-lined CPU to enter deeper C states
Currently when a CPU is off-lined it enters either MWAIT-based idle or,
if MWAIT is not desired or supported, HLT-based idle (which places the
processor in C1 state). This patch allows processors without MWAIT
support to stay in states deeper than C1.
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@amd.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kernel/smpboot.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index 66d250c00d11..93a2a0932b51 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c | |||
@@ -50,6 +50,7 @@ | |||
50 | #include <linux/tboot.h> | 50 | #include <linux/tboot.h> |
51 | #include <linux/stackprotector.h> | 51 | #include <linux/stackprotector.h> |
52 | #include <linux/gfp.h> | 52 | #include <linux/gfp.h> |
53 | #include <linux/cpuidle.h> | ||
53 | 54 | ||
54 | #include <asm/acpi.h> | 55 | #include <asm/acpi.h> |
55 | #include <asm/desc.h> | 56 | #include <asm/desc.h> |
@@ -1422,7 +1423,8 @@ void native_play_dead(void) | |||
1422 | tboot_shutdown(TB_SHUTDOWN_WFS); | 1423 | tboot_shutdown(TB_SHUTDOWN_WFS); |
1423 | 1424 | ||
1424 | mwait_play_dead(); /* Only returns on failure */ | 1425 | mwait_play_dead(); /* Only returns on failure */ |
1425 | hlt_play_dead(); | 1426 | if (cpuidle_play_dead()) |
1427 | hlt_play_dead(); | ||
1426 | } | 1428 | } |
1427 | 1429 | ||
1428 | #else /* ... !CONFIG_HOTPLUG_CPU */ | 1430 | #else /* ... !CONFIG_HOTPLUG_CPU */ |