lkml.org 
[lkml]   [2009]   [May]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [GIT PULL] scheduler fixes
    > On Mon, May 25, 2009 at 02:37:59PM +0300, Pekka Enberg wrote:
    > > On Mon, May 25, 2009 at 2:25 PM, Nick Piggin <npiggin@suse.de> wrote:
    > > > The bootmem allocations of course are required because some hashes may
    > > > need to be larger than MAX_ORDER without using vmalloc.
    > > >
    > > > kmem_cache_init (and mem_init, partially) sets up the kernel memory
    > > > allocators...
    > >
    > > Which comment are you talking about? The "setup kernel memory
    > > allocators" one? Yeah, I should probably move it couple of lines down.

    On Mon, 25 May 2009, Nick Piggin wrote:
    > Yes, just that one.

    And oh, we probably want to do this too while at it. Nick?

    From b211497261670ff6f9af6b8b0fab429e848ccc87 Mon Sep 17 00:00:00 2001
    From: Pekka Enberg <penberg@cs.helsinki.fi>
    Date: Mon, 25 May 2009 15:01:35 +0300
    Subject: [PATCH] vmalloc: use kzalloc() instead of alloc_bootmem()

    We can call vmalloc_init() after kmem_cache_init() and use kzalloc() instead of
    the bootmem allocator when initializing vmalloc data structures.

    Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
    ---
    init/main.c | 2 +-
    mm/vmalloc.c | 3 +--
    2 files changed, 2 insertions(+), 3 deletions(-)

    diff --git a/init/main.c b/init/main.c
    index fb0e004..766194c 100644
    --- a/init/main.c
    +++ b/init/main.c
    @@ -585,13 +585,13 @@ asmlinkage void __init start_kernel(void)
    __stop___param - __start___param,
    &unknown_bootoption);
    pidhash_init();
    - vmalloc_init();
    vfs_caches_init_early();
    /*
    * Set up kernel memory allocators
    */
    mem_init();
    kmem_cache_init();
    + vmalloc_init();
    /*
    * Set up the scheduler prior starting any interrupts (such as the
    * timer interrupt). Full topology setup happens at smp_init()
    diff --git a/mm/vmalloc.c b/mm/vmalloc.c
    index 083716e..3235138 100644
    --- a/mm/vmalloc.c
    +++ b/mm/vmalloc.c
    @@ -23,7 +23,6 @@
    #include <linux/rbtree.h>
    #include <linux/radix-tree.h>
    #include <linux/rcupdate.h>
    -#include <linux/bootmem.h>
    #include <linux/pfn.h>

    #include <asm/atomic.h>
    @@ -1032,7 +1031,7 @@ void __init vmalloc_init(void)

    /* Import existing vmlist entries. */
    for (tmp = vmlist; tmp; tmp = tmp->next) {
    - va = alloc_bootmem(sizeof(struct vmap_area));
    + va = kzalloc(sizeof(struct vmap_area), GFP_NOWAIT);
    va->flags = tmp->flags | VM_VM_AREA;
    va->va_start = (unsigned long)tmp->addr;
    va->va_end = va->va_start + tmp->size;
    --
    1.6.0.4


    \
     
     \ /
      Last update: 2009-05-25 14:07    [W:0.024 / U:0.456 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site