lkml.org 
[lkml]   [2008]   [Jun]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] x86: don't reallocate pgt for node0
    Date

    kva ram already mapped right after away, so don't need to get that for low ram.
    avoid wasting one copy pgdat.

    also add node id in early_res name in case get it from find_e820_area.

    Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>

    ---
    arch/x86/mm/discontig_32.c | 11 +++++++----
    1 file changed, 7 insertions(+), 4 deletions(-)

    Index: linux-2.6/arch/x86/mm/discontig_32.c
    ===================================================================
    --- linux-2.6.orig/arch/x86/mm/discontig_32.c
    +++ linux-2.6/arch/x86/mm/discontig_32.c
    @@ -156,17 +156,20 @@ static void __init propagate_e820_map_no
    */
    static void __init allocate_pgdat(int nid)
    {
    - if (nid && node_has_online_mem(nid) && node_remap_start_vaddr[nid])
    + char buf[16];
    +
    + if (node_has_online_mem(nid) && node_remap_start_vaddr[nid])
    NODE_DATA(nid) = (pg_data_t *)node_remap_start_vaddr[nid];
    else {
    unsigned long pgdat_phys;
    pgdat_phys = find_e820_area(min_low_pfn<<PAGE_SHIFT,
    - (nid ? max_low_pfn:max_pfn_mapped)<<PAGE_SHIFT,
    + max_pfn_mapped<<PAGE_SHIFT,
    sizeof(pg_data_t),
    PAGE_SIZE);
    NODE_DATA(nid) = (pg_data_t *)(pfn_to_kaddr(pgdat_phys>>PAGE_SHIFT));
    - reserve_early(pgdat_phys, pgdat_phys + sizeof(pg_data_t),
    - "NODE_DATA");
    + memset(buf, 0, sizeof(buf));
    + sprintf(buf, "NODE_DATA %d", nid);
    + reserve_early(pgdat_phys, pgdat_phys + sizeof(pg_data_t), buf);
    }
    printk(KERN_DEBUG "allocate_pgdat: node %d NODE_DATA %08lx\n",
    nid, (unsigned long)NODE_DATA(nid));

    \
     
     \ /
      Last update: 2008-07-01 03:35    [W:0.025 / U:60.284 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site