Messages in this thread | | | Date | Tue, 1 Dec 2009 10:37:38 +0100 | From | Andrea Arcangeli <> | Subject | Re: [PATCH 2/9] ksm: let shared pages be swappable |
| |
On Tue, Dec 01, 2009 at 06:28:16PM +0900, KOSAKI Motohiro wrote: > This patch doesn't works correctly. shrink_active_list() use page_referenced() for > clear young bit and doesn't use return value.
The whole point is that it's inefficient to clear all young bits just to move it to inactive list in the hope that new young bits will be set right before the page reaches the end of the inactive list.
> after this patch apply, shrink_active_list() move the page to inactive list although > the page still have many young bit. then, next shrink_inactive_list() move the page > to active list again.
yes it's not the end of the world, this only alter behavior for pages that have plenty of mappings. However I still it's inefficient to pretend to clear all young bits at once when page is deactivated. But this is not something I'm interested to argue about... let do what you like there, but as long as you pretend to clear all dirty bits there is no way we can fix anything. Plus we should touch ptes only in presence of heavy memory pressure, with light memory pressure ptes should _never_ be touched, and we should only shrink unmapped cache. And active/inactive movements must still happen even in presence of light memory pressure. The reason is that with light memory pressure we're not I/O bound and we don't want to waste time there. My patch is ok, what is not ok is the rest, you got to change the rest to deal with this.
| |