Messages in this thread | | | Date | Wed, 27 May 2009 10:31:07 +0900 | From | KAMEZAWA Hiroyuki <> | Subject | Re: [RFC][PATCH 5/5] (experimental) chase and free cache only swap |
| |
On Wed, 27 May 2009 03:26:58 +0200 Johannes Weiner <hannes@cmpxchg.org> wrote:
> On Wed, May 27, 2009 at 09:08:13AM +0900, KAMEZAWA Hiroyuki wrote: > > On Tue, 26 May 2009 20:14:00 +0200 > > Johannes Weiner <hannes@cmpxchg.org> wrote: > > > > > On Tue, May 26, 2009 at 12:18:34PM +0900, KAMEZAWA Hiroyuki wrote: > > > > > > > > From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> > > > > > > > > Just a trial/example patch. > > > > I'd like to consider more. Better implementation idea is welcome. > > > > > > > > When the system does swap-in/swap-out repeatedly, there are > > > > cache-only swaps in general. > > > > Typically, > > > > - swapped out in past but on memory now while vm_swap_full() returns true > > > > pages are cache-only swaps. (swap_map has no references.) > > > > > > > > This cache-only swaps can be an obstacles for smooth page reclaiming. > > > > Current implemantation is very naive, just scan & free. > > > > > > I think we can just remove that vm_swap_full() check in do_swap_page() > > > and try to remove the page from swap cache unconditionally. > > > > > I'm not sure why reclaim swap entry only at write fault. > > How do you come to that conclusion? Do you mean the current code does > that? yes.
2474 pte = mk_pte(page, vma->vm_page_prot); 2475 if (write_access && reuse_swap_page(page)) { 2476 pte = maybe_mkwrite(pte_mkdirty(pte), vma); 2477 write_access = 0; 2478 }
> Did you understand that I suggested that? >
I thought you suggested that swp_entry should be reclaimed in read-fault as same way as write-fault.
Thanks, -Kame
| |