aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorBoris Ostrovsky <boris.ostrovsky@amd.com>2012-03-13 14:55:09 -0400
committerLen Brown <len.brown@intel.com>2012-03-30 03:23:01 -0400
commit1a022e3f1be11730bd8747b1af96a0274bf6356e (patch)
treed3c95b68626ac7d963ac3a85a07dae1cfc011906 /arch
parente07510585a88c0f6c6c728e2e006aa913496d4ae (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.c4
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 */