summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDimitri Sivanich <sivanich@sgi.com>2008-04-28 11:13:37 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2008-04-28 17:58:26 +0200
commit468fd62ed9090ccbe872489df5d0d099510df4b5 (patch)
tree017ab340cac72bf86423f181f085e7bc39fd70ea
parentmm: fix broken gfp_zone with __GFP_THISNODE (diff)
downloadlinux-468fd62ed9090ccbe872489df5d0d099510df4b5.tar.xz
linux-468fd62ed9090ccbe872489df5d0d099510df4b5.zip
vmstats: add cond_resched() to refresh_cpu_vm_stats()
We've found that it can take quite a bit of time (100's of usec) to get through the zone loop in refresh_cpu_vm_stats(). Adding a cond_resched() to allow other threads to run in the non-preemptive case. Signed-off-by: Dimitri Sivanich <sivanich@sgi.com> Acked-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--mm/vmstat.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/mm/vmstat.c b/mm/vmstat.c
index 4c21670f8d91..ec6035eda933 100644
--- a/mm/vmstat.c
+++ b/mm/vmstat.c
@@ -322,6 +322,7 @@ void refresh_cpu_vm_stats(int cpu)
p->expire = 3;
#endif
}
+ cond_resched();
#ifdef CONFIG_NUMA
/*
* Deal with draining the remote pageset of this