On Fri 20-01-12 12:26:58, KAMEZAWA Hiroyuki wrote: > I think this version is much simplified. > > == > From 5700a4fe9c581e1ebaa021ba6119dc8d921b024f Mon Sep 17 00:00:00 2001 > From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> > Date: Thu, 19 Jan 2012 17:09:41 +0900 > Subject: [PATCH v3] 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. > > 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 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> > --- > include/linux/page_cgroup.h | 8 +------ > mm/memcontrol.c | 48 +++++++++++++++++++++++------------------- > 2 files changed, 27 insertions(+), 29 deletions(-) > [...] > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index ff24520..f000c82 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -672,15 +672,19 @@ static unsigned long mem_cgroup_read_events(struct mem_cgroup *memcg, > } > > static void mem_cgroup_charge_statistics(struct mem_cgroup *memcg, > - bool file, int nr_pages) > + bool rss, int nr_pages) Can we make this anon as well? > { > preempt_disable(); > > - if (file) > - __this_cpu_add(memcg->stat->count[MEM_CGROUP_STAT_CACHE], > + /* > + * Here, RSS means 'mapped anon' and anon's SwapCache. Shmem/tmpfs is > + * counted as CACHE even if it's on ANON LRU. > + */ > + if (rss) > + __this_cpu_add(memcg->stat->count[MEM_CGROUP_STAT_RSS], > nr_pages); > else > - __this_cpu_add(memcg->stat->count[MEM_CGROUP_STAT_RSS], > + __this_cpu_add(memcg->stat->count[MEM_CGROUP_STAT_CACHE], > nr_pages); > > /* pagein of a big page is an event. So, ignore page size */ [...] -- Michal Hocko SUSE Labs SUSE LINUX s.r.o. Lihovarska 1060/12 190 00 Praha 9 Czech Republic -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>