Re: [PATCH] Add file based RSS accounting for memory resource controller (v2)

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: KAMEZAWA Hiroyuki
Date: Thursday, April 16, 2009 - 12:40 am

On Thu, 16 Apr 2009 11:02:46 +0900
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> wrote:

Sorry, some troubles found. Ignore above Ack. 3points now.

1. get_cpu should be after (*)
==mem_cgroup_update_mapped_file_stat()
+	int cpu = get_cpu();
+
+	if (!page_is_file_cache(page))
+		return;
+
+	if (unlikely(!mm))
+		mm = &init_mm;
+
+	mem = try_get_mem_cgroup_from_mm(mm);
+	if (!mem)
+		return;
+ ----------------------------------------(*)
+	stat = &mem->stat;
+	cpustat = &stat->cpustat[cpu];
+
+	__mem_cgroup_stat_add_safe(cpustat, MEM_CGROUP_STAT_MAPPED_FILE, val);
+	put_cpu();
+}
==

2. In above, "mem" shouldn't be got from "mm"....please get "mem" from page_cgroup.
(Because it's file cache, pc->mem_cgroup is not NULL always.)

I saw this very easily.
==
Cache: 4096
mapped_file: 20480
==

3. at force_empty().
==
+
+	cpu = get_cpu();
+	/* Update mapped_file data for mem_cgroup "from" */
+	stat = &from->stat;
+	cpustat = &stat->cpustat[cpu];
+	__mem_cgroup_stat_add_safe(cpustat, MEM_CGROUP_STAT_MAPPED_FILE, -1);
+
+	/* Update mapped_file data for mem_cgroup "to" */
+	stat = &to->stat;
+	cpustat = &stat->cpustat[cpu];
+	__mem_cgroup_stat_add_safe(cpustat, MEM_CGROUP_STAT_MAPPED_FILE, 1);
+	put_cpu();

This just breaks counter when page is not mapped. please check page_mapped().

like this:
==
    if (page_is_file_cache(page) && page_mapped(page)) {
	modify counter.
    }
==

and call lock_page_cgroup() in  mem_cgroup_update_mapped_file_stat().

This will be slow, but optimization will be very tricky and need some amount of time.


-Kame



--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: [PATCH] Add file based RSS accounting for memory resou ..., KAMEZAWA Hiroyuki, (Wed Apr 15, 5:53 pm)
Re: [PATCH] Add file based RSS accounting for memory resou ..., KAMEZAWA Hiroyuki, (Wed Apr 15, 7:02 pm)
Re: [PATCH] Add file based RSS accounting for memory resou ..., KAMEZAWA Hiroyuki, (Thu Apr 16, 12:40 am)
Re: [PATCH] Add file based RSS accounting for memory resou ..., KAMEZAWA Hiroyuki, (Thu Apr 16, 1:15 am)
Re: [PATCH] Add file based RSS accounting for memory resou ..., KAMEZAWA Hiroyuki, (Thu Apr 16, 4:57 pm)
Re: [PATCH] Add file based RSS accounting for memory resou ..., KAMEZAWA Hiroyuki, (Thu Apr 16, 5:14 pm)
Re: [PATCH] Add file based RSS accounting for memory resou ..., KAMEZAWA Hiroyuki, (Thu Apr 16, 5:17 pm)
Re: [PATCH] Add file based RSS accounting for memory resou ..., KAMEZAWA Hiroyuki, (Thu Apr 16, 7:03 pm)
Re: [PATCH] Add file based RSS accounting for memory resou ..., KAMEZAWA Hiroyuki, (Thu Apr 16, 8:49 pm)
Re: [PATCH] Add file based RSS accounting for memory resou ..., KAMEZAWA Hiroyuki, (Thu Apr 16, 10:17 pm)
Re: [PATCH] Add file based RSS accounting for memory resou ..., KAMEZAWA Hiroyuki, (Thu Apr 16, 11:56 pm)
Re: [PATCH] Add file based RSS accounting for memory resou ..., KAMEZAWA Hiroyuki, (Fri Apr 17, 9:30 am)
Re: [PATCH] Add file based RSS accounting for memory resou ..., KAMEZAWA Hiroyuki, (Tue Apr 21, 5:02 pm)
[PATCH] memcg: remove trylock_page_cgroup, KAMEZAWA Hiroyuki, (Tue Apr 21, 8:16 pm)
Re: [PATCH] memcg: remove trylock_page_cgroup, Andrew Morton, (Tue Apr 21, 8:41 pm)
Re: [PATCH] memcg: remove trylock_page_cgroup, KAMEZAWA Hiroyuki, (Tue Apr 21, 9:41 pm)
Re: [PATCH] memcg: remove trylock_page_cgroup, Andrew Morton, (Tue Apr 21, 11:01 pm)
Re: [PATCH] memcg: remove trylock_page_cgroup, KAMEZAWA Hiroyuki, (Tue Apr 21, 11:13 pm)