slab: Use same schedule timeout for all cpus in cache_reap
PATCH 1/1 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 <[email protected]>
mm/slab.c +2 -2
@@ -3276,7 +3276,7 @@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 ; }
@@ -3345,7 +3345,7 @@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