diff options
author | Manfred Spraul <manfred@colorfullife.com> | 2005-11-07 00:58:02 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-07 07:53:24 -0800 |
commit | cd61ef6268ac52d3dfa5626d1e0306a91b3b2608 (patch) | |
tree | 5df1bfd49f2e9be33505ba900d2ed153fed9a2af /mm/slab.c | |
parent | 2109a2d1b175dfcffbfdac693bdbe4c4ab62f11f (diff) | |
download | lwn-cd61ef6268ac52d3dfa5626d1e0306a91b3b2608.tar.gz lwn-cd61ef6268ac52d3dfa5626d1e0306a91b3b2608.zip |
[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/slab.c')
-rw-r--r-- | mm/slab.c | 4 |
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) if (down_trylock(&cache_chain_sem)) { /* Give up. Setup the next iteration. */ - schedule_delayed_work(&__get_cpu_var(reap_work), REAPTIMEOUT_CPUC + smp_processor_id()); + schedule_delayed_work(&__get_cpu_var(reap_work), REAPTIMEOUT_CPUC); return; } @@ -3348,7 +3348,7 @@ next: up(&cache_chain_sem); drain_remote_pages(); /* Setup the next iteration */ - schedule_delayed_work(&__get_cpu_var(reap_work), REAPTIMEOUT_CPUC + smp_processor_id()); + schedule_delayed_work(&__get_cpu_var(reap_work), REAPTIMEOUT_CPUC); } #ifdef CONFIG_PROC_FS |