Re: [patch 01/21] move isolate_lru_page() to vmscan.c

KOSAKI Motohiro
2008-02-29T02:30:47Z

Hi Rik

> @@ -870,14 +840,17 @@ static int do_move_pages(struct mm_struc
> !migrate_all)
> goto put_and_set;
>
> - err = isolate_lru_page(page, &pagelist);
> + err = isolate_lru_page(page);
> + if (err) {
> put_and_set:
> - /*
> - * Either remove the duplicate refcount from
> - * isolate_lru_page() or drop the page ref if it was
> - * not isolated.
> - */
> - put_page(page);
> + /*
> + * Either remove the duplicate refcount from
> + * isolate_lru_page() or drop the page ref if it was
> + * not isolated.
> + */
> + put_page(page);
> + } else
> + list_add_tail(&page->lru, &pagelist);

We think this portion change to following code.

---------------------------------------------
err = isolate_lru_page(page);
if (!err)
list_add_tail(&page->lru, &pagelist);
put_and_set:
put_page(page); /* drop follow_page() reference */
---------------------------------------------

because nobody hope change page_count.

original do_move_pages:
follow_page: page_count +1
isolate_lru_page: page_count +1
put_page: page_count -1
----------------------------------
total +1
this patch:
follow_page: page_count +1
isolate_lru_page: page_count +1
----------------------------------
total +2

- kosaki