Messages in this thread | | | Date | Mon, 30 Nov 2009 09:46:16 +0900 | From | KAMEZAWA Hiroyuki <> | Subject | Re: [PATCH 2/9] ksm: let shared pages be swappable |
| |
On Tue, 24 Nov 2009 16:42:15 +0000 (GMT) Hugh Dickins <hugh.dickins@tiscali.co.uk> wrote: > +int page_referenced_ksm(struct page *page, struct mem_cgroup *memcg, > + unsigned long *vm_flags) > +{ > + struct stable_node *stable_node; > + struct rmap_item *rmap_item; > + struct hlist_node *hlist; > + unsigned int mapcount = page_mapcount(page); > + int referenced = 0; > + struct vm_area_struct *vma; > + > + VM_BUG_ON(!PageKsm(page)); > + VM_BUG_ON(!PageLocked(page)); > + > + stable_node = page_stable_node(page); > + if (!stable_node) > + return 0; > +
Hmm. I'm not sure how many pages are shared in a system but can't we add some threshold for avoidng too much scan against shared pages ? (in vmscan.c) like.. if (page_mapcount(page) > (XXXX >> scan_priority)) return 1;
I saw terrible slow downs in shmem-swap-out in old RHELs (at user support). (Added kosaki to CC.)
After this patch, the number of shared swappable page will be unlimited.
Thanks, -Kame
| |