Messages in this thread | | | Date | Mon, 30 Nov 2009 13:07:05 +0100 | From | Andrea Arcangeli <> | Subject | Re: [PATCH 2/9] ksm: let shared pages be swappable |
| |
On Mon, Nov 30, 2009 at 09:46:16AM +0900, KAMEZAWA Hiroyuki wrote: > 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.)
If those ptes are all old there's no reason to keep those pages in ram more... I don't like those magic number levels. If you saw slowdowns it'd be interesting to get more information on those workloads. I never seen swap out workloads in real life that are not 99% I/O dominated, there's nothing that loads the cpu anything close to 100%, so nothing that a magic check like above could affect. Besides tmpfs unmap methods are different from ksm and anon pages unmap methods, and certain locks are coarser if there's userland taking i_mmap_lock for I/O during paging.
> After this patch, the number of shared swappable page will be unlimited.
It is unlimited even without ksm, tmpfs may be limited but it's not like we stop fork from sharing at some point and anon_vma is less finegrined than rmap_item and it can also include in its list vmas not mapping the page in presence of mremap/munmap partial truncation of the copied/shared vma.
| |