Messages in this thread | | | Date | Wed, 27 Apr 2011 16:54:37 +0900 | From | KAMEZAWA Hiroyuki <> | Subject | Re: [RFC 1/8] Only isolate page we can handle |
| |
On Wed, 27 Apr 2011 01:25:18 +0900 Minchan Kim <minchan.kim@gmail.com> wrote:
> There are some places to isolate lru page and I believe > users of isolate_lru_page will be growing. > The purpose of them is each different so part of isolated pages > should put back to LRU, again. > > The problem is when we put back the page into LRU, > we lose LRU ordering and the page is inserted at head of LRU list. > It makes unnecessary LRU churning so that vm can evict working set pages > rather than idle pages. > > This patch adds new filter mask when we isolate page in LRU. > So, we don't isolate pages if we can't handle it. > It could reduce LRU churning. > > This patch shouldn't change old behavior. > It's just used by next patches. > > Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> > Cc: Mel Gorman <mgorman@suse.de> > Cc: Rik van Riel <riel@redhat.com> > Cc: Andrea Arcangeli <aarcange@redhat.com> > Signed-off-by: Minchan Kim <minchan.kim@gmail.com>
Reviewed-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
nitpick below.
> --- > include/linux/swap.h | 3 ++- > mm/compaction.c | 2 +- > mm/memcontrol.c | 2 +- > mm/vmscan.c | 26 ++++++++++++++++++++------ > 4 files changed, 24 insertions(+), 9 deletions(-) > > diff --git a/include/linux/swap.h b/include/linux/swap.h > index 384eb5f..baef4ad 100644 > --- a/include/linux/swap.h > +++ b/include/linux/swap.h > @@ -259,7 +259,8 @@ extern unsigned long mem_cgroup_shrink_node_zone(struct mem_cgroup *mem, > unsigned int swappiness, > struct zone *zone, > unsigned long *nr_scanned); > -extern int __isolate_lru_page(struct page *page, int mode, int file); > +extern int __isolate_lru_page(struct page *page, int mode, int file, > + int not_dirty, int not_mapped);
Hmm, which is better to use 4 binary args or a flag with bitmask ?
Thanks, -Kame
| |