lkml.org 
[lkml]   [2005]   [Aug]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[RFC][PATCH 03/12] memory hotplug prep: zone wait table at runtime
    From
    Date

    Add an if() to the wait-table init code to allow runtime
    allocations to call kmalloc() instead of using the
    bootmem allocator

    Signed-off-by: Dave Hansen <haveblue@us.ibm.com>
    ---

    ./arch/sparc64/kernel/dtlb_base.S | 0
    memhotplug-dave/mm/page_alloc.c | 10 +++++++---
    2 files changed, 7 insertions(+), 3 deletions(-)

    diff -puN mm/sparse.c~C2-kmalloc-zone_wait_table-at-runtime mm/sparse.c
    diff -L mm/memory_hotplug.c -puN /dev/null /dev/null
    diff -L drivers/base/memory.c -puN /dev/null /dev/null
    diff -puN mm/page_alloc.c~C2-kmalloc-zone_wait_table-at-runtime mm/page_alloc.c
    --- memhotplug/mm/page_alloc.c~C2-kmalloc-zone_wait_table-at-runtime 2005-08-12 07:43:44.000000000 -0700
    +++ memhotplug-dave/mm/page_alloc.c 2005-08-12 07:43:44.000000000 -0700
    @@ -1854,6 +1854,7 @@ static __devinit
    void zone_wait_table_init(struct zone *zone, unsigned long zone_size_pages)
    {
    int i;
    + unsigned long size_bytes;

    /*
    * The per-page waitqueue mechanism uses hashed waitqueues
    @@ -1861,9 +1862,12 @@ void zone_wait_table_init(struct zone *z
    */
    zone->wait_table_size = wait_table_size(zone_size_pages);
    zone->wait_table_bits = wait_table_bits(zone->wait_table_size);
    - zone->wait_table = (wait_queue_head_t *)
    - alloc_bootmem_node(pgdat, zone->wait_table_size
    - * sizeof(wait_queue_head_t));
    + size_bytes = zone->wait_table_size * sizeof(wait_queue_head_t);
    + if (system_state >= SYSTEM_RUNNING)
    + zone->wait_table = kmalloc(size_bytes, GFP_KERNEL);
    + else
    + zone->wait_table = alloc_bootmem_node(zone->zone_pgdat,
    + size_bytes);

    for(i = 0; i < zone->wait_table_size; ++i)
    init_waitqueue_head(zone->wait_table + i);
    diff -L serq -puN /dev/null /dev/null
    diff -puN ./arch/sparc64/kernel/dtlb_base.S~C2-kmalloc-zone_wait_table-at-runtime ./arch/sparc64/kernel/dtlb_base.S
    _
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2005-08-12 16:52    [W:0.023 / U:0.260 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site