aboutsummaryrefslogtreecommitdiffstats
path: root/arch/i386/kernel/process.c
diff options
context:
space:
mode:
authorAndi Kleen <ak@suse.de>2007-05-02 13:27:12 -0400
committerAndi Kleen <andi@basil.nowhere.org>2007-05-02 13:27:12 -0400
commitf039b754714a422959027cb18bb33760eb8153f0 (patch)
treec5f28502adf35f5ea7738a974cd7c4fc81e1dd21 /arch/i386/kernel/process.c
parentc169859d6dfc7471ef9f2dbd720936e17906a084 (diff)
[PATCH] x86: Don't use MWAIT on AMD Family 10
It doesn't put the CPU into deeper sleep states, so it's better to use the standard idle loop to save power. But allow to reenable it anyways for benchmarking. I also removed the obsolete idle=halt on i386 Cc: andreas.herrmann@amd.com Signed-off-by: Andi Kleen <ak@suse.de>
Diffstat (limited to 'arch/i386/kernel/process.c')
-rw-r--r--arch/i386/kernel/process.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/arch/i386/kernel/process.c b/arch/i386/kernel/process.c
index 393a67d5d943..7e8e129b3d7d 100644
--- a/arch/i386/kernel/process.c
+++ b/arch/i386/kernel/process.c
@@ -272,25 +272,24 @@ void __devinit select_idle_routine(const struct cpuinfo_x86 *c)
272 } 272 }
273} 273}
274 274
275static int __init idle_setup (char *str) 275static int __init idle_setup(char *str)
276{ 276{
277 if (!strncmp(str, "poll", 4)) { 277 if (!strcmp(str, "poll")) {
278 printk("using polling idle threads.\n"); 278 printk("using polling idle threads.\n");
279 pm_idle = poll_idle; 279 pm_idle = poll_idle;
280#ifdef CONFIG_X86_SMP 280#ifdef CONFIG_X86_SMP
281 if (smp_num_siblings > 1) 281 if (smp_num_siblings > 1)
282 printk("WARNING: polling idle and HT enabled, performance may degrade.\n"); 282 printk("WARNING: polling idle and HT enabled, performance may degrade.\n");
283#endif 283#endif
284 } else if (!strncmp(str, "halt", 4)) { 284 } else if (!strcmp(str, "mwait"))
285 printk("using halt in idle threads.\n"); 285 force_mwait = 1;
286 pm_idle = default_idle; 286 else
287 } 287 return -1;
288 288
289 boot_option_idle_override = 1; 289 boot_option_idle_override = 1;
290 return 1; 290 return 0;
291} 291}
292 292early_param("idle", idle_setup);
293__setup("idle=", idle_setup);
294 293
295void show_regs(struct pt_regs * regs) 294void show_regs(struct pt_regs * regs)
296{ 295{