Re: [GIT PULL v2] Early boot SLAB for 2.6.31
From: Pekka Enberg
Date: Thu Jun 11 2009 - 10:06:45 EST
Hi Christoph,
On Thu, Jun 11, 2009 at 4:58 PM, Christoph
Lameter<cl@xxxxxxxxxxxxxxxxxxxx> wrote:
>> @@ -645,14 +657,10 @@ asmlinkage void __init start_kernel(void)
>> initrd_start = 0;
>> }
>> #endif
>> - vmalloc_init();
>> - vfs_caches_init_early();
>> cpuset_init_early();
>> page_cgroup_init();
>> - mem_init();
>> enable_debug_pagealloc();
>> cpu_hotplug_init();
>> - kmem_cache_init();
>> kmemtrace_init();
>> debug_objects_mem_init();
>> idr_init_cache();
>
> Therefore potential breakage is in cpusets, hotplug and control groups.
> Have any of these been tested with these patches? NUMA?
Yinghai has done some testing. Control groups should to be fine:
http://git.kernel.org/?p=linux/kernel/git/penberg/slab-2.6.git;a=commitdiff;h=7d63de6b4c7798a6a1c6504a65c327aaf76ef2d5
I have not tested hotplug and cpuset_init_early() does indeed needs to
be switched over to slab (it does that via fallback now).
>> diff --git a/mm/slub.c b/mm/slub.c
>> index 5e805a6..c1815a6 100644
>> --- a/mm/slub.c
>> +++ b/mm/slub.c
>> @@ -2557,13 +2557,16 @@ static struct kmem_cache *create_kmalloc_cache(struct kmem_cache *s,
>> if (gfp_flags & SLUB_DMA)
>> flags = SLAB_CACHE_DMA;
>>
>> - down_write(&slub_lock);
>> + /*
>> + * This function is called with IRQs disabled during early-boot on
>> + * single CPU so there's no need to take slub_lock here.
>> + */
>> if (!kmem_cache_open(s, gfp_flags, name, size, ARCH_KMALLOC_MINALIGN,
>
> This function is also called later when kmalloc caches are
> created on demand.
Where? AFAICT, only kmem_cache_init() calls the function.
Pekka
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/