--- mm/slub.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) Index: linux-2.6.21-rc6/mm/slub.c =================================================================== --- linux-2.6.21-rc6.orig/mm/slub.c 2007-04-11 12:19:40.000000000 -0700 +++ linux-2.6.21-rc6/mm/slub.c 2007-04-11 12:22:50.000000000 -0700 @@ -1201,9 +1201,16 @@ have_slab: SetPageActive(page); #ifdef CONFIG_SMP - if (!atomic_read(&s->cpu_slabs) && keventd_up()) { + if (!atomic_read(&s->cpu_slabs)) { + /* Note that we have active cpu slabs */ atomic_inc(&s->cpu_slabs); - schedule_delayed_work(&s->flush, 30 * HZ); + if (keventd_up()) + schedule_delayed_work(&s->flush, 30 * HZ); + /* else we may be running for awhile without + * a slab reaper but this only affects boot + * slabs. The next flush_all will restore things + * to normal. + */ } #endif goto redo;