lkml.org 
[lkml]   [2011]   [Dec]   [14]   [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
    During direct reclaim it 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
    that 0 is 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 faf88b8..69057b5 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-14 16:43    [W:0.022 / U:60.604 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site