There's no point in calling mark_page_accessed() here. The page is never on the LRU so all mark_page_accessed() will do is to set PG_referenced, which we immediately clear again. --- 25-akpm/mm/rmap.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN mm/rmap.c~page_referenced-no-mark_page_accessed mm/rmap.c --- 25/mm/rmap.c~page_referenced-no-mark_page_accessed Fri Mar 12 15:40:08 2004 +++ 25-akpm/mm/rmap.c Fri Mar 12 15:40:14 2004 @@ -118,7 +118,7 @@ int fastcall page_referenced(struct page int referenced = 0; if (page_test_and_clear_young(page)) - mark_page_accessed(page); + referenced++; if (TestClearPageReferenced(page)) referenced++; _