aboutsummaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorManfred Spraul <manfred@colorfullife.com>2005-11-07 03:58:02 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2005-11-07 10:53:24 -0500
commitcd61ef6268ac52d3dfa5626d1e0306a91b3b2608 (patch)
tree5df1bfd49f2e9be33505ba900d2ed153fed9a2af /mm
parent2109a2d1b175dfcffbfdac693bdbe4c4ab62f11f (diff)
[PATCH] slab: Use same schedule timeout for all cpus in cache_reap
Chen noticed that cache_reap uses REAPTIMEOUT_CPUC+smp_processor_id() as the timeout for rescheduling. The "+smp_processor_id()" part is wrong, the timeout should be identical for all cpus: start_cpu_timer already adds a cpu dependant offset to avoid any clustering. The attached patch removes smp_processor_id(). Signed-Off-By: Manfred Spraul <manfred@colorfullife.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'mm')
-rw-r--r--mm/slab.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/mm/slab.c b/mm/slab.c
index d77e5f50fba9..1db4d7313853 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -3279,7 +3279,7 @@ static void cache_reap(void *unused)
3279 3279
3280 if (down_trylock(&cache_chain_sem)) { 3280 if (down_trylock(&cache_chain_sem)) {
3281 /* Give up. Setup the next iteration. */ 3281 /* Give up. Setup the next iteration. */
3282 schedule_delayed_work(&__get_cpu_var(reap_work), REAPTIMEOUT_CPUC + smp_processor_id()); 3282 schedule_delayed_work(&__get_cpu_var(reap_work), REAPTIMEOUT_CPUC);
3283 return; 3283 return;
3284 } 3284 }
3285 3285
@@ -3348,7 +3348,7 @@ next:
3348 up(&cache_chain_sem); 3348 up(&cache_chain_sem);
3349 drain_remote_pages(); 3349 drain_remote_pages();
3350 /* Setup the next iteration */ 3350 /* Setup the next iteration */
3351 schedule_delayed_work(&__get_cpu_var(reap_work), REAPTIMEOUT_CPUC + smp_processor_id()); 3351 schedule_delayed_work(&__get_cpu_var(reap_work), REAPTIMEOUT_CPUC);
3352} 3352}
3353 3353
3354#ifdef CONFIG_PROC_FS 3354#ifdef CONFIG_PROC_FS