Re: [PATCH 1/3] remove wrong rotation at lumpy reclaim

From: Minchan Kim
Date: Thu Jun 11 2009 - 05:18:22 EST


On Thu, Jun 11, 2009 at 5:00 PM, KAMEZAWA
Hiroyuki<kamezawa.hiroyu@xxxxxxxxxxxxxx> wrote:
> From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx>
>
> 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@xxxxxxxxxxxxxx>
> ---
> Â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;

break ??

--
Kinds regards,
Minchan Kim
èº{.nÇ+‰·Ÿ®‰­†+%ŠËlzwm…ébëæìr¸›zX§»®w¥Š{ayºÊÚë,j­¢f£¢·hš‹àz¹®w¥¢¸ ¢·¦j:+v‰¨ŠwèjØm¶Ÿÿ¾«‘êçzZ+ƒùšŽŠÝj"ú!¶iO•æ¬z·švØ^¶m§ÿðà nÆàþY&—