Messages in this thread | | | Date | Fri, 29 Feb 2008 11:29:18 +0900 | From | KOSAKI Motohiro <> | Subject | Re: [patch 01/21] move isolate_lru_page() to vmscan.c |
| |
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
| |