2009-06-11 15:47:47

by Pekka Enberg

[permalink] [raw]
Subject: [PATCH] init: introduce mm_init()

From: Pekka Enberg <[email protected]>

As suggested by Christoph Lameter, introduce mm_init() now that we initialize
all the kernel memory allocations together.

Cc: Christoph Lameter <[email protected]>
Signed-off-by: Pekka Enberg <[email protected]>
---
init/main.c | 17 +++++++++++------
1 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/init/main.c b/init/main.c
index 6d38f96..9e4bc82 100644
--- a/init/main.c
+++ b/init/main.c
@@ -533,6 +533,16 @@ void __init __weak thread_info_cache_init(void)
{
}

+static void __init mm_init(void)
+{
+ /*
+ * Set up kernel memory allocators
+ */
+ mem_init();
+ kmem_cache_init();
+ vmalloc_init();
+}
+
asmlinkage void __init start_kernel(void)
{
char * command_line;
@@ -590,12 +600,7 @@ asmlinkage void __init start_kernel(void)
vfs_caches_init_early();
sort_main_extable();
trap_init();
- /*
- * Set up kernel memory allocators
- */
- mem_init();
- kmem_cache_init();
- vmalloc_init();
+ mm_init();
/*
* Set up the scheduler prior starting any interrupts (such as the
* timer interrupt). Full topology setup happens at smp_init()
--
1.6.0.4


2009-06-11 15:57:17

by Linus Torvalds

[permalink] [raw]
Subject: Re: [PATCH] init: introduce mm_init()



On Thu, 11 Jun 2009, Pekka J Enberg wrote:
>
> +static void __init mm_init(void)
> +{
> + /*
> + * Set up kernel memory allocators
> + */
> + mem_init();
> + kmem_cache_init();
> + vmalloc_init();
> +}

Please just put the comments at the top of the function in cases like
this, ie just

/*
* ...
*/
static int __init mm_init(void)
{
..
}

also, I'm now terminally confused about the whole series, so I'm wondering
if you could re-do the series so that (a) I have a clear picture of what
to take, and (b) preferably so it's also all bisectable (ie the trap_init
ordering fixes are done in the initial mm/init.c changes).

Linus

2009-06-11 15:58:26

by Christoph Lameter

[permalink] [raw]
Subject: Re: [PATCH] init: introduce mm_init()

You forgot to move it to mm/mm_init.c

On Thu, 11 Jun 2009, Pekka J Enberg wrote:

> From: Pekka Enberg <[email protected]>
>
> As suggested by Christoph Lameter, introduce mm_init() now that we initialize
> all the kernel memory allocations together.
>
> Cc: Christoph Lameter <[email protected]>
> Signed-off-by: Pekka Enberg <[email protected]>
> ---
> init/main.c | 17 +++++++++++------
> 1 files changed, 11 insertions(+), 6 deletions(-)
>
> diff --git a/init/main.c b/init/main.c
> index 6d38f96..9e4bc82 100644
> --- a/init/main.c
> +++ b/init/main.c
> @@ -533,6 +533,16 @@ void __init __weak thread_info_cache_init(void)
> {
> }
>
> +static void __init mm_init(void)
> +{
> + /*
> + * Set up kernel memory allocators
> + */
> + mem_init();
> + kmem_cache_init();
> + vmalloc_init();
> +}
> +
> asmlinkage void __init start_kernel(void)
> {
> char * command_line;
> @@ -590,12 +600,7 @@ asmlinkage void __init start_kernel(void)
> vfs_caches_init_early();
> sort_main_extable();
> trap_init();
> - /*
> - * Set up kernel memory allocators
> - */
> - mem_init();
> - kmem_cache_init();
> - vmalloc_init();
> + mm_init();
> /*
> * Set up the scheduler prior starting any interrupts (such as the
> * timer interrupt). Full topology setup happens at smp_init()
>

2009-06-11 16:01:32

by Pekka Enberg

[permalink] [raw]
Subject: Re: [PATCH] init: introduce mm_init()

Hi Linus,

On Thu, 2009-06-11 at 08:56 -0700, Linus Torvalds wrote:
> Please just put the comments at the top of the function in cases like
> this, ie just
>
> /*
> * ...
> */
> static int __init mm_init(void)
> {
> ..
> }

Fixed.

On Thu, 2009-06-11 at 08:56 -0700, Linus Torvalds wrote:
> also, I'm now terminally confused about the whole series, so I'm wondering
> if you could re-do the series so that (a) I have a clear picture of what
> to take, and (b) preferably so it's also all bisectable (ie the trap_init
> ordering fixes are done in the initial mm/init.c changes).

Yup, I will do that and send a v3 of the pull request. I am compiling a
kernel here to try out my tree on 32-bit. I think Ingo is busy preparing
his remaining merges now so I haven't gotten confirmation from him
whether my patch fixes the problem he saw or not.

Pekka

2009-06-11 16:31:18

by Pekka Enberg

[permalink] [raw]
Subject: Re: [PATCH] init: introduce mm_init()

On Thu, 2009-06-11 at 11:57 -0400, Christoph Lameter wrote:
> You forgot to move it to mm/mm_init.c

OK, but that needs to wait for another day. The patch series is already
getting pretty big and there's no mminit.h in include/linux for this.

Pekka

2009-06-11 16:36:01

by Linus Torvalds

[permalink] [raw]
Subject: Re: [PATCH] init: introduce mm_init()



On Thu, 11 Jun 2009, Pekka Enberg wrote:

> On Thu, 2009-06-11 at 11:57 -0400, Christoph Lameter wrote:
> > You forgot to move it to mm/mm_init.c
>
> OK, but that needs to wait for another day. The patch series is already
> getting pretty big and there's no mminit.h in include/linux for this.

Yeah. Keep it in init/main.c for now. Let's keep it all simple.

Linus