Re: [PATCH v4] memcg: remove PCG_CACHE page_cgroup flag

From: Johannes Weiner
Date: Tue Jan 24 2012 - 09:54:28 EST


On Tue, Jan 24, 2012 at 12:16:44PM +0100, Johannes Weiner wrote:
> On Tue, Jan 24, 2012 at 12:16:36PM +0900, KAMEZAWA Hiroyuki wrote:
> >
> > > Can we make this anon as well?
> >
> > I'm sorry for long RTT. version 4 here.
> > ==
> > >From c40256561d6cdaee62be7ec34147e6079dc426f4 Mon Sep 17 00:00:00 2001
> > From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx>
> > Date: Thu, 19 Jan 2012 17:09:41 +0900
> > Subject: [PATCH] memcg: remove PCG_CACHE
> >
> > We record 'the page is cache' by PCG_CACHE bit to page_cgroup.
> > Here, "CACHE" means anonymous user pages (and SwapCache). This
> > doesn't include shmem.
>
> !CACHE means anonymous/swapcache
>
> > Consdering callers, at charge/uncharge, the caller should know
> > what the page is and we don't need to record it by using 1bit
> > per page.
> >
> > This patch removes PCG_CACHE bit and make callers of
> > mem_cgroup_charge_statistics() to specify what the page is.
> >
> > Changelog since v3
> > - renamed a variable 'rss' to 'anon'
> >
> > Changelog since v2
> > - removed 'not_rss', added 'anon'
> > - changed a meaning of arguments to mem_cgroup_charge_statisitcs()
> > - removed a patch to mem_cgroup_uncharge_cache
> > - simplified comment.
> >
> > Changelog since RFC.
> > - rebased onto memcg-devel
> > - rename 'file' to 'not_rss'
> > - some cleanup and added comment.
> >
> > Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx>
>
> Acked-by: Johannes Weiner <hannes@xxxxxxxxxxx>

Hold on, I think this patch is still not complete: end_migration()
directly uses __mem_cgroup_uncharge_common() with the FORCE charge
type. This will uncharge all migrated anon pages as cache, when it
should decide based on PageAnon(used), which is the page where
->mapping is intact after migration.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/