lkml.org 
[lkml]   [2012]   [Jun]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] mm: clear pages_scanned only if draining a pcp adds pages to the buddy allocator again
    Date
    From: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>

    commit 2ff754fa8f (mm: clear pages_scanned only if draining a pcp adds pages
    to the buddy allocator again) fixed one free_pcppages_bulk() misuse. But two
    another miuse still exist.

    This patch fixes it.

    Cc: David Rientjes <rientjes@google.com>
    Cc: Mel Gorman <mel@csn.ul.ie>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Minchan Kim <minchan.kim@gmail.com>
    Cc: Wu Fengguang <fengguang.wu@intel.com>
    Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    ---
    mm/page_alloc.c | 9 ++++++---
    1 files changed, 6 insertions(+), 3 deletions(-)

    diff --git a/mm/page_alloc.c b/mm/page_alloc.c
    index 5716b00..4e7059d 100644
    --- a/mm/page_alloc.c
    +++ b/mm/page_alloc.c
    @@ -1157,8 +1157,10 @@ void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp)
    to_drain = pcp->batch;
    else
    to_drain = pcp->count;
    - free_pcppages_bulk(zone, to_drain, pcp);
    - pcp->count -= to_drain;
    + if (to_drain > 0) {
    + free_pcppages_bulk(zone, to_drain, pcp);
    + pcp->count -= to_drain;
    + }
    local_irq_restore(flags);
    }
    #endif
    @@ -3914,7 +3916,8 @@ static int __zone_pcp_update(void *data)
    pcp = &pset->pcp;

    local_irq_save(flags);
    - free_pcppages_bulk(zone, pcp->count, pcp);
    + if (pcp->count > 0)
    + free_pcppages_bulk(zone, pcp->count, pcp);
    setup_pageset(pset, batch);
    local_irq_restore(flags);
    }
    --
    1.7.1


    \
     
     \ /
      Last update: 2012-06-14 19:01    [W:0.023 / U:2.860 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site