Re: page fault scalability patch V12 [0/7]: Overview and

Andrew Morton
2004-12-10T22:12:58Z

Hugh Dickins <hugh@veritas.com> wrote:
>
> > > (I do wonder why do_anonymous_page calls mark_page_accessed as well as
> > > lru_cache_add_active. The other instances of lru_cache_add_active for
> > > an anonymous page don't mark_page_accessed i.e. SetPageReferenced too,
> > > why here? But that's nothing new with your patch, and although you've
> > > reordered the calls, the final page state is the same as before.)
> >
> > The mark_page_accessed is likely there avoid a future fault just to set
> > the accessed bit.
>
> No, mark_page_accessed is an operation on the struct page
> (and the accessed bit of the pte is preset too anyway).

The point is a good one - I guess that code is a holdover from earlier
implementations.

This is equivalent, no?

--- 25/mm/memory.c~do_anonymous_page-use-setpagereferenced Fri Dec 10 14:11:32 2004
+++ 25-akpm/mm/memory.c Fri Dec 10 14:11:42 2004
@@ -1464,7 +1464,7 @@ do_anonymous_page(struct mm_struct *mm,
vma->vm_page_prot)),
vma);
lru_cache_add_active(page);
- mark_page_accessed(page);
+ SetPageReferenced(page);
page_add_anon_rmap(page, vma, addr);
}

_