diff options
author | Paul Mundt <lethal@linux-sh.org> | 2009-10-16 04:27:58 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2009-10-16 04:27:58 -0400 |
commit | 0e6d4986e7940125a04ba8c3aa558f3b248cb9b4 (patch) | |
tree | b54572e3fd33d50177d3c3699eda07283678dbb2 | |
parent | f533c3d340536198a4889a42a68d6c0d79a504e7 (diff) |
sh: Make check_pgt_cache() more aggressive while idling.
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>
-rw-r--r-- | arch/sh/kernel/idle.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/sh/kernel/idle.c b/arch/sh/kernel/idle.c index 8e61241230cb..3243eb23e842 100644 --- a/arch/sh/kernel/idle.c +++ b/arch/sh/kernel/idle.c | |||
@@ -88,6 +88,9 @@ void cpu_idle(void) | |||
88 | tick_nohz_stop_sched_tick(1); | 88 | tick_nohz_stop_sched_tick(1); |
89 | 89 | ||
90 | while (!need_resched() && cpu_online(cpu)) { | 90 | while (!need_resched() && cpu_online(cpu)) { |
91 | check_pgt_cache(); | ||
92 | rmb(); | ||
93 | |||
91 | local_irq_disable(); | 94 | local_irq_disable(); |
92 | /* Don't trace irqs off for idle */ | 95 | /* Don't trace irqs off for idle */ |
93 | stop_critical_timings(); | 96 | stop_critical_timings(); |
@@ -104,7 +107,6 @@ void cpu_idle(void) | |||
104 | preempt_enable_no_resched(); | 107 | preempt_enable_no_resched(); |
105 | schedule(); | 108 | schedule(); |
106 | preempt_disable(); | 109 | preempt_disable(); |
107 | check_pgt_cache(); | ||
108 | } | 110 | } |
109 | } | 111 | } |
110 | 112 | ||