Browse Source

x86: move out tick_nohz_stop_sched_tick() call from the loop

Move out tick_nohz_stop_sched_tick() call from the loop in cpu_idle
same as 32-bit version.

Signed-off-by: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Hiroshi Shimamoto 17 năm trước cách đây
mục cha
commit
3d97775a80
1 tập tin đã thay đổi với 1 bổ sung2 xóa
  1. 1 2
      arch/x86/kernel/process_64.c

+ 1 - 2
arch/x86/kernel/process_64.c

@@ -170,14 +170,13 @@ void cpu_idle(void)
 	current_thread_info()->status |= TS_POLLING;
 	current_thread_info()->status |= TS_POLLING;
 	/* endless idle loop with no priority at all */
 	/* endless idle loop with no priority at all */
 	while (1) {
 	while (1) {
+		tick_nohz_stop_sched_tick();
 		while (!need_resched()) {
 		while (!need_resched()) {
 			void (*idle)(void);
 			void (*idle)(void);
 
 
 			if (__get_cpu_var(cpu_idle_state))
 			if (__get_cpu_var(cpu_idle_state))
 				__get_cpu_var(cpu_idle_state) = 0;
 				__get_cpu_var(cpu_idle_state) = 0;
 
 
-			tick_nohz_stop_sched_tick();
-
 			rmb();
 			rmb();
 			idle = pm_idle;
 			idle = pm_idle;
 			if (!idle)
 			if (!idle)