lkml.org 
[lkml]   [2009]   [Jun]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 1/3] remove wrong rotation at lumpy reclaim
    From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>

    At lumpy reclaim, a page failed to be taken by __isolate_lru_page() can
    be pushed back to "src" list by list_move(). But the page may not be from
    "src" list. And list_move() itself is unnecessary because the page is
    not on top of LRU. Then, leave it as it is if __isolate_lru_page() fails.

    This patch doesn't change the logic as "we should exit loop or not" and
    just fixes buggy list_move().

    Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    ---
    mm/vmscan.c | 9 +--------
    1 file changed, 1 insertion(+), 8 deletions(-)

    Index: lumpy-reclaim-trial/mm/vmscan.c
    ===================================================================
    --- lumpy-reclaim-trial.orig/mm/vmscan.c
    +++ lumpy-reclaim-trial/mm/vmscan.c
    @@ -936,18 +936,11 @@ static unsigned long isolate_lru_pages(u
    /* Check that we have not crossed a zone boundary. */
    if (unlikely(page_zone_id(cursor_page) != zone_id))
    continue;
    - switch (__isolate_lru_page(cursor_page, mode, file)) {
    - case 0:
    + if (__isolate_lru_page(cursor_page, mode, file) == 0) {
    list_move(&cursor_page->lru, dst);
    nr_taken++;
    scan++;
    break;
    -
    - case -EBUSY:
    - /* else it is being freed elsewhere */
    - list_move(&cursor_page->lru, src);
    - default:
    - break; /* ! on LRU or wrong list */
    }
    }
    }


    \
     
     \ /
      Last update: 2009-06-11 10:05    [W:0.022 / U:1.460 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site