提交 cd61ef62 编写于 作者: M Manfred Spraul 提交者: Linus Torvalds

[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: NManfred Spraul <manfred@colorfullife.com>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 2109a2d1
...@@ -3279,7 +3279,7 @@ static void cache_reap(void *unused) ...@@ -3279,7 +3279,7 @@ static void cache_reap(void *unused)
if (down_trylock(&cache_chain_sem)) { if (down_trylock(&cache_chain_sem)) {
/* Give up. Setup the next iteration. */ /* 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; return;
} }
...@@ -3348,7 +3348,7 @@ static void cache_reap(void *unused) ...@@ -3348,7 +3348,7 @@ static void cache_reap(void *unused)
up(&cache_chain_sem); up(&cache_chain_sem);
drain_remote_pages(); drain_remote_pages();
/* Setup the next iteration */ /* 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 #ifdef CONFIG_PROC_FS
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册