On Wed, 17 Sep 2008 14:50:03 +0900, KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> wrote:
Hmm, something like this?
---
@@ -734,6 +734,9 @@ int mem_cgroup_prepare_migration(struct page *page, struct page *newpa
if (mem_cgroup_subsys.disabled)
return 0;
+ if (PageSwapBacked(page))
+ SetPageSwapBacked(newpage);
+
lock_page_cgroup(page);
pc = page_get_page_cgroup(page);
if (pc) {
---
Or, adding MEM_CGROUP_CHARGE_TYPE_SHMEM and
---
@@ -740,7 +740,10 @@ int mem_cgroup_prepare_migration(struct page *page, struct page *newp
mem = pc->mem_cgroup;
css_get(&mem->css);
if (pc->flags & PAGE_CGROUP_FLAG_CACHE)
- ctype = MEM_CGROUP_CHARGE_TYPE_CACHE;
+ if (page_is_file_cache(page))
+ ctype = MEM_CGROUP_CHARGE_TYPE_CACHE;
+ else
+ ctype = MEM_CGROUP_CHARGE_TYPE_SHMEM;
}
unlock_page_cgroup(page);
if (mem) {
---
(Of course, mem_cgroup_charge_common should be modified too.)
Thanks,
Daisuke Nishimura.
--