[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>
This commit is contained in:
parent
2109a2d1b1
commit
cd61ef6268
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue