From: Hiroshi Shimamoto Date: Wed, 30 Jan 2008 12:33:00 +0000 (+0100) Subject: x86: move out tick_nohz_stop_sched_tick() call from the loop X-Git-Tag: v2.6.24.4~30 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a542b46db3536a4009b618609058a44edad9d22d;p=thirdparty%2Fkernel%2Fstable.git x86: move out tick_nohz_stop_sched_tick() call from the loop [upstream commit: 3d97775a] Move out tick_nohz_stop_sched_tick() call from the loop in cpu_idle same as 32-bit version. Signed-off-by: Hiroshi Shimamoto Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner Cc: Ed Tomlinson Signed-off-by: Chris Wright Signed-off-by: Greg Kroah-Hartman --- diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c index ab79e1dfa0231..d7f7132307a55 100644 --- a/arch/x86/kernel/process_64.c +++ b/arch/x86/kernel/process_64.c @@ -212,14 +212,13 @@ void cpu_idle (void) current_thread_info()->status |= TS_POLLING; /* endless idle loop with no priority at all */ while (1) { + tick_nohz_stop_sched_tick(); while (!need_resched()) { void (*idle)(void); if (__get_cpu_var(cpu_idle_state)) __get_cpu_var(cpu_idle_state) = 0; - tick_nohz_stop_sched_tick(); - rmb(); idle = pm_idle; if (!idle)