diff options
author | Manfred Spraul <manfred@colorfullife.com> | 2005-11-07 03:58:02 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-07 10:53:24 -0500 |
commit | cd61ef6268ac52d3dfa5626d1e0306a91b3b2608 (patch) | |
tree | 5df1bfd49f2e9be33505ba900d2ed153fed9a2af /mm | |
parent | 2109a2d1b175dfcffbfdac693bdbe4c4ab62f11f (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.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -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 |