lkml.org 
[lkml]   [2009]   [Aug]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH] fix updating of num_physpages for hot plugged memory
    Sizing of memory allocations shouldn't depend on the number of physical
    pages found in a system, as that generally includes (perhaps a huge
    amount of) non-RAM pages. The amount of what actually is usable as
    storage should instead be used as a basis here.

    In line with that, the memory hotplug code should update num_physpages
    in a way that it retains its original (post-boot) meaning; in
    particular, decreasing the value should at best be done with great care
    - this patch doesn't try to ever decrease this value at all as it
    doesn't really seem meaningful to do so.

    Signed-off-by: Jan Beulich <jbeulich@novell.com>
    Acked-by: Rusty Russell <rusty@rustcorp.com.au>

    ---
    mm/memory_hotplug.c | 6 ++++--
    1 file changed, 4 insertions(+), 2 deletions(-)

    --- linux-2.6.31-rc6/mm/memory_hotplug.c 2009-08-18 15:31:56.000000000 +0200
    +++ 2.6.31-rc6-use-totalram_pages/mm/memory_hotplug.c 2009-08-17 15:21:19.000000000 +0200
    @@ -339,8 +339,11 @@ EXPORT_SYMBOL_GPL(__remove_pages);

    void online_page(struct page *page)
    {
    + unsigned long pfn = page_to_pfn(page);
    +
    totalram_pages++;
    - num_physpages++;
    + if (pfn >= num_physpages)
    + num_physpages = pfn + 1;

    #ifdef CONFIG_HIGHMEM
    if (PageHighMem(page))
    @@ -831,7 +834,6 @@ repeat:
    zone->present_pages -= offlined_pages;
    zone->zone_pgdat->node_present_pages -= offlined_pages;
    totalram_pages -= offlined_pages;
    - num_physpages -= offlined_pages;

    setup_per_zone_wmarks();
    calculate_zone_inactive_ratio(zone);




    \
     
     \ /
      Last update: 2009-08-18 17:37    [W:0.019 / U:30.552 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site