Re: [PATCH] mm: vmscan: fix typo in isolating lru pages

Andrew Morton
2011-12-29T23:07:18Z

On Thu, 29 Dec 2011 20:38:41 +0800
Hillf Danton <dhillf@gmail.com> wrote:

> It is not the tag page but the cursor page that we should process, and it looks
> a typo.
>
> Signed-off-by: Hillf Danton <dhillf@gmail.com>
> Cc: Michal Hocko <mhocko@suse.cz>
> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Cc: David Rientjes <rientjes@google.com>
> Cc: Hugh Dickins <hughd@google.com>
> ---
>
> --- a/mm/vmscan.c Thu Dec 29 20:20:16 2011
> +++ b/mm/vmscan.c Thu Dec 29 20:23:30 2011
> @@ -1231,13 +1231,13 @@ static unsigned long isolate_lru_pages(u
>
> mem_cgroup_lru_del(cursor_page);
> list_move(&cursor_page->lru, dst);
> - isolated_pages = hpage_nr_pages(page);
> + isolated_pages = hpage_nr_pages(cursor_page);
> nr_taken += isolated_pages;
> nr_lumpy_taken += isolated_pages;
> if (PageDirty(cursor_page))
> nr_lumpy_dirty += isolated_pages;
> scan++;
> - pfn += isolated_pages-1;
> + pfn += isolated_pages - 1;
> } else {
> /*
> * Check if the page is freed already.

This problem looks pretty benign in mainline. But Andrea's "mm:
vmscan: check if we isolated a compound page during lumpy scan" came
along and uses isolated_pages rather a lot more, including using it to
advance across the pfn array.

I jiggled your patch to suit current mainline then reworked everything
else so we end up with this result.