sh: Make check_pgt_cache() more aggressive while idling.
authorPaul Mundt <lethal@linux-sh.org>
Fri, 16 Oct 2009 08:27:58 +0000 (17:27 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Fri, 16 Oct 2009 08:27:58 +0000 (17:27 +0900)
This follows the x86 change and moves check_pgt_cache() up under the
!need_resched() tight loop, rather than simply calling in to it when
exiting idle.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/kernel/idle.c

index 8e61241..3243eb2 100644 (file)
@@ -88,6 +88,9 @@ void cpu_idle(void)
                tick_nohz_stop_sched_tick(1);
 
                while (!need_resched() && cpu_online(cpu)) {
+                       check_pgt_cache();
+                       rmb();
+
                        local_irq_disable();
                        /* Don't trace irqs off for idle */
                        stop_critical_timings();
@@ -104,7 +107,6 @@ void cpu_idle(void)
                preempt_enable_no_resched();
                schedule();
                preempt_disable();
-               check_pgt_cache();
        }
 }