lkml.org 
[lkml]   [2011]   [Dec]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 04/11] mm: vmscan: Do not OOM if aborting reclaim to start compaction
    Date
    When direct reclaim is entered is is possible that reclaim will be
    aborted so that compaction can be attempted to satisfy a high-order
    allocation. If this decision is made before any pages are reclaimed,
    it is possible for 0 to be returned to the page allocator potentially
    triggering an OOM. This has not been observed but it is a possibility
    so this patch addresses it.

    Signed-off-by: Mel Gorman <mgorman@suse.de>
    ---
    mm/vmscan.c | 8 +++++++-
    1 files changed, 7 insertions(+), 1 deletions(-)

    diff --git a/mm/vmscan.c b/mm/vmscan.c
    index 3421746..5f4c789 100644
    --- a/mm/vmscan.c
    +++ b/mm/vmscan.c
    @@ -2222,6 +2222,7 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist,
    struct zoneref *z;
    struct zone *zone;
    unsigned long writeback_threshold;
    + bool should_abort_reclaim;

    get_mems_allowed();
    delayacct_freepages_start();
    @@ -2233,7 +2234,8 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist,
    sc->nr_scanned = 0;
    if (!priority)
    disable_swap_token(sc->mem_cgroup);
    - if (shrink_zones(priority, zonelist, sc))
    + should_abort_reclaim = shrink_zones(priority, zonelist, sc);
    + if (should_abort_reclaim)
    break;

    /*
    @@ -2301,6 +2303,10 @@ out:
    if (oom_killer_disabled)
    return 0;

    + /* Aborting reclaim to try compaction? don't OOM, then */
    + if (should_abort_reclaim)
    + return 1;
    +
    /* top priority shrink_zones still had more to do? don't OOM, then */
    if (scanning_global_lru(sc) && !all_unreclaimable(zonelist, sc))
    return 1;
    --
    1.7.3.4


    \
     
     \ /
      Last update: 2011-12-01 18:41    [W:0.027 / U:0.044 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site