Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cd61ef62 authored by Manfred Spraul's avatar Manfred Spraul Committed by Linus Torvalds
Browse files

[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: default avatarManfred Spraul <manfred@colorfullife.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 2109a2d1
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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 @@ static void cache_reap(void *unused)
	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