From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Zijlstra Date: Wed, 12 Jul 2006 16:39:40 +0200 Message-Id: <20060712143940.16998.41841.sendpatchset@lappy> In-Reply-To: <20060712143659.16998.6444.sendpatchset@lappy> References: <20060712143659.16998.6444.sendpatchset@lappy> Subject: [PATCH 14/39] mm: pgrep: manage page-state Sender: owner-linux-mm@kvack.org Return-Path: To: linux-mm@kvack.org Cc: Peter Zijlstra List-ID: From: Peter Zijlstra API: Copy/Clear the reclaim page state: void pgrep_copy_state(struct page *, struct page *); void pgrep_clear_state(struct page *); Query activeness of the page, where 'active' is taken to mean: not likely to be in the next candidate group. int pgrep_is_active(struct page *); Signed-off-by: Peter Zijlstra swapcache++; - if (PageActive(page)) + if (pgrep_is_active(page)) md->active++; if (PageWriteback(page)) Index: linux-2.6/mm/migrate.c =================================================================== --- linux-2.6.orig/mm/migrate.c 2006-07-12 16:08:18.000000000 +0200 +++ linux-2.6/mm/migrate.c 2006-07-12 16:11:45.000000000 +0200 @@ -262,12 +262,11 @@ void migrate_page_copy(struct page *newp SetPageReferenced(newpage); if (PageUptodate(page)) SetPageUptodate(newpage); - if (PageActive(page)) - SetPageActive(newpage); if (PageChecked(page)) SetPageChecked(newpage); if (PageMappedToDisk(page)) SetPageMappedToDisk(newpage); + pgrep_copy_state(newpage, page); if (PageDirty(page)) { clear_page_dirty_for_io(page); @@ -275,8 +274,8 @@ void migrate_page_copy(struct page *newp } ClearPageSwapCache(page); - ClearPageActive(page); ClearPagePrivate(page); + pgrep_clear_state(page); set_page_private(page, 0); page->mapping = NULL; Index: linux-2.6/mm/vmscan.c =================================================================== --- linux-2.6.orig/mm/vmscan.c 2006-07-12 16:09:18.000000000 +0200 +++ linux-2.6/mm/vmscan.c 2006-07-12 16:11:45.000000000 +0200 @@ -473,6 +473,7 @@ unsigned long shrink_page_list(struct li goto keep_locked; free_it: + pgrep_clear_state(page); unlock_page(page); nr_reclaimed++; if (!pagevec_add(&freed_pvec, page)) -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org