mirror of
https://github.com/followmsi/android_kernel_google_msm.git
synced 2024-11-06 23:17:41 +00:00
slab: shut down cache_reaper when cpu goes down
Shutdown the cache_reaper if the cpu is brought down and set the cache_reap.func to NULL. Otherwise hotplug shuts down the reaper for good. Signed-off-by: Christoph Lameter <clameter@sgi.com> Cc: Oleg Nesterov <oleg@tv-sign.ru> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
a4798833d2
commit
5830c59021
1 changed files with 14 additions and 0 deletions
14
mm/slab.c
14
mm/slab.c
|
@ -1279,6 +1279,20 @@ static int __cpuinit cpuup_callback(struct notifier_block *nfb,
|
||||||
start_cpu_timer(cpu);
|
start_cpu_timer(cpu);
|
||||||
break;
|
break;
|
||||||
#ifdef CONFIG_HOTPLUG_CPU
|
#ifdef CONFIG_HOTPLUG_CPU
|
||||||
|
case CPU_DOWN_PREPARE:
|
||||||
|
/*
|
||||||
|
* Shutdown cache reaper. Note that the cache_chain_mutex is
|
||||||
|
* held so that if cache_reap() is invoked it cannot do
|
||||||
|
* anything expensive but will only modify reap_work
|
||||||
|
* and reschedule the timer.
|
||||||
|
*/
|
||||||
|
cancel_rearming_delayed_work(&per_cpu(reap_work, cpu));
|
||||||
|
/* Now the cache_reaper is guaranteed to be not running. */
|
||||||
|
per_cpu(reap_work, cpu).work.func = NULL;
|
||||||
|
break;
|
||||||
|
case CPU_DOWN_FAILED:
|
||||||
|
start_cpu_timer(cpu);
|
||||||
|
break;
|
||||||
case CPU_DEAD:
|
case CPU_DEAD:
|
||||||
/*
|
/*
|
||||||
* Even if all the cpus of a node are down, we don't free the
|
* Even if all the cpus of a node are down, we don't free the
|
||||||
|
|
Loading…
Reference in a new issue