Patchwork mm: Move pgtable_cache_init() earlier

login
register
mail settings
Submitter Benjamin Herrenschmidt
Date June 17, 2009, 3:48 a.m.
Message ID <1245210519.21602.16.camel@pasglop>
Download mbox | patch
Permalink /patch/28761/
State Accepted
Headers show

Comments

Benjamin Herrenschmidt - June 17, 2009, 3:48 a.m.
Some architectures need to initialize SLAB caches to be able
to allocate page tables. They do that from pgtable_cache_init()
so the later should be called earlier now, best is before
vmalloc_init().

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---

Note: Only powerpc, sparc and xtensa use this and only to
call kmem_cache_create() so with a bit of luck it should
just work...
Pekka Enberg - June 17, 2009, 4:16 a.m.
Hi Ben,

On Wed, Jun 17, 2009 at 6:48 AM, Benjamin
Herrenschmidt<benh@kernel.crashing.org> wrote:
> Some architectures need to initialize SLAB caches to be able
> to allocate page tables. They do that from pgtable_cache_init()
> so the later should be called earlier now, best is before
> vmalloc_init().
>
> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

Looks good to me!

Acked-by: Pekka Enberg <penberg@cs.helsinki.fi>

Patch

Index: linux-work/init/main.c
===================================================================
--- linux-work.orig/init/main.c	2009-06-17 13:41:33.000000000 +1000
+++ linux-work/init/main.c	2009-06-17 13:41:45.000000000 +1000
@@ -546,6 +546,7 @@  static void __init mm_init(void)
 	page_cgroup_init_flatmem();
 	mem_init();
 	kmem_cache_init();
+	pgtable_cache_init();
 	vmalloc_init();
 }
 
@@ -684,7 +685,6 @@  asmlinkage void __init start_kernel(void
 		late_time_init();
 	calibrate_delay();
 	pidmap_init();
-	pgtable_cache_init();
 	anon_vma_init();
 #ifdef CONFIG_X86
 	if (efi_enabled)