[PATCH 01/10] memcg: add page_cgroup flags for dirty page tracking

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Greg Thelen
Date: Sunday, October 3, 2010 - 11:57 pm

Add additional flags to page_cgroup to track dirty pages
within a mem_cgroup.

Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Signed-off-by: Andrea Righi <arighi@develer.com>
Signed-off-by: Greg Thelen <gthelen@google.com>
---
 include/linux/page_cgroup.h |   23 +++++++++++++++++++++++
 1 files changed, 23 insertions(+), 0 deletions(-)

diff --git a/include/linux/page_cgroup.h b/include/linux/page_cgroup.h
index 5bb13b3..b59c298 100644
--- a/include/linux/page_cgroup.h
+++ b/include/linux/page_cgroup.h
@@ -40,6 +40,9 @@ enum {
 	PCG_USED, /* this object is in use. */
 	PCG_ACCT_LRU, /* page has been accounted for */
 	PCG_FILE_MAPPED, /* page is accounted as "mapped" */
+	PCG_FILE_DIRTY, /* page is dirty */
+	PCG_FILE_WRITEBACK, /* page is under writeback */
+	PCG_FILE_UNSTABLE_NFS, /* page is NFS unstable */
 	PCG_MIGRATION, /* under page migration */
 };
 
@@ -59,6 +62,10 @@ static inline void ClearPageCgroup##uname(struct page_cgroup *pc)	\
 static inline int TestClearPageCgroup##uname(struct page_cgroup *pc)	\
 	{ return test_and_clear_bit(PCG_##lname, &pc->flags);  }
 
+#define TESTSETPCGFLAG(uname, lname)			\
+static inline int TestSetPageCgroup##uname(struct page_cgroup *pc)	\
+	{ return test_and_set_bit(PCG_##lname, &pc->flags);  }
+
 TESTPCGFLAG(Locked, LOCK)
 
 /* Cache flag is set only once (at allocation) */
@@ -80,6 +87,22 @@ SETPCGFLAG(FileMapped, FILE_MAPPED)
 CLEARPCGFLAG(FileMapped, FILE_MAPPED)
 TESTPCGFLAG(FileMapped, FILE_MAPPED)
 
+SETPCGFLAG(FileDirty, FILE_DIRTY)
+CLEARPCGFLAG(FileDirty, FILE_DIRTY)
+TESTPCGFLAG(FileDirty, FILE_DIRTY)
+TESTCLEARPCGFLAG(FileDirty, FILE_DIRTY)
+TESTSETPCGFLAG(FileDirty, FILE_DIRTY)
+
+SETPCGFLAG(FileWriteback, FILE_WRITEBACK)
+CLEARPCGFLAG(FileWriteback, FILE_WRITEBACK)
+TESTPCGFLAG(FileWriteback, FILE_WRITEBACK)
+
+SETPCGFLAG(FileUnstableNFS, FILE_UNSTABLE_NFS)
+CLEARPCGFLAG(FileUnstableNFS, FILE_UNSTABLE_NFS)
+TESTPCGFLAG(FileUnstableNFS, FILE_UNSTABLE_NFS)
+TESTCLEARPCGFLAG(FileUnstableNFS, FILE_UNSTABLE_NFS)
+TESTSETPCGFLAG(FileUnstableNFS, FILE_UNSTABLE_NFS)
+
 SETPCGFLAG(Migration, MIGRATION)
 CLEARPCGFLAG(Migration, MIGRATION)
 TESTPCGFLAG(Migration, MIGRATION)
-- 
1.7.1

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

Messages in current thread:
[PATCH 00/10] memcg: per cgroup dirty page accounting, Greg Thelen, (Sun Oct 3, 11:57 pm)
[PATCH 01/10] memcg: add page_cgroup flags for dirty page ..., Greg Thelen, (Sun Oct 3, 11:57 pm)
[PATCH 07/10] memcg: add dirty limits to mem_cgroup, Greg Thelen, (Sun Oct 3, 11:58 pm)
Re: [PATCH 01/10] memcg: add page_cgroup flags for dirty p ..., KAMEZAWA Hiroyuki, (Mon Oct 4, 11:20 pm)
Re: [PATCH 02/10] memcg: document cgroup dirty memory inte ..., KAMEZAWA Hiroyuki, (Mon Oct 4, 11:48 pm)
Re: [PATCH 03/10] memcg: create extensible page stat updat ..., KAMEZAWA Hiroyuki, (Mon Oct 4, 11:51 pm)
Re: [PATCH 04/10] memcg: disable local interrupts in lock_ ..., KAMEZAWA Hiroyuki, (Mon Oct 4, 11:54 pm)
Re: [PATCH 06/10] memcg: add kernel calls for memcg dirty ..., KAMEZAWA Hiroyuki, (Mon Oct 4, 11:55 pm)
Re: [PATCH 07/10] memcg: add dirty limits to mem_cgroup, KAMEZAWA Hiroyuki, (Tue Oct 5, 12:07 am)
Re: [PATCH 08/10] memcg: add cgroupfs interface to memcg d ..., KAMEZAWA Hiroyuki, (Tue Oct 5, 12:13 am)
Re: [PATCH 09/10] writeback: make determine_dirtyable_memo ..., KAMEZAWA Hiroyuki, (Tue Oct 5, 12:15 am)
Re: [PATCH 05/10] memcg: add dirty page accounting infrast ..., KAMEZAWA Hiroyuki, (Tue Oct 5, 12:22 am)
Re: [PATCH 10/10] memcg: check memcg dirty limits in page ..., KAMEZAWA Hiroyuki, (Tue Oct 5, 12:29 am)
Re: [PATCH 08/10] memcg: add cgroupfs interface to memcg d ..., KAMEZAWA Hiroyuki, (Tue Oct 5, 12:31 am)
Re: [PATCH 07/10] memcg: add dirty limits to mem_cgroup, KAMEZAWA Hiroyuki, (Wed Oct 6, 5:13 pm)
Re: [PATCH 07/10] memcg: add dirty limits to mem_cgroup, KAMEZAWA Hiroyuki, (Wed Oct 6, 5:48 pm)
[PATCH] memcg: reduce lock time at move charge (Was Re: [P ..., KAMEZAWA Hiroyuki, (Wed Oct 6, 11:21 pm)
[PATCH] memcg: lock-free clear page writeback (Was Re: [P ..., KAMEZAWA Hiroyuki, (Wed Oct 6, 11:24 pm)
Re: [PATCH] memcg: reduce lock time at move charge (Was Re ..., Daisuke Nishimura, (Thu Oct 7, 12:28 am)
Re: [PATCH] memcg: reduce lock time at move charge (Was Re ..., KAMEZAWA Hiroyuki, (Thu Oct 7, 12:42 am)
Re: [PATCH] memcg: lock-free clear page writeback (Was Re ..., KAMEZAWA Hiroyuki, (Thu Oct 7, 2:05 am)
Re: [PATCH v2] memcg: reduce lock time at move charge (Was ..., KAMEZAWA Hiroyuki, (Thu Oct 7, 10:12 pm)
Re: [PATCH 07/10] memcg: add dirty limits to mem_cgroup, KAMEZAWA Hiroyuki, (Mon Oct 11, 5:55 pm)
Re: [PATCH v2] memcg: reduce lock time at move charge (Was ..., KAMEZAWA Hiroyuki, (Mon Oct 11, 8:42 pm)
Re: [PATCH v2] memcg: reduce lock time at move charge (Was ..., Daisuke Nishimura, (Mon Oct 11, 8:56 pm)
Re: [PATCH v2] memcg: reduce lock time at move charge (Was ..., KAMEZAWA Hiroyuki, (Mon Oct 11, 10:01 pm)
[PATCH v4] memcg: reduce lock time at move charge, KAMEZAWA Hiroyuki, (Mon Oct 11, 10:48 pm)
Re: [PATCH v4] memcg: reduce lock time at move charge, Daisuke Nishimura, (Mon Oct 11, 11:23 pm)
Re: [PATCH 07/10] memcg: add dirty limits to mem_cgroup, Greg Thelen, (Tue Oct 12, 12:32 am)
Re: [PATCH 07/10] memcg: add dirty limits to mem_cgroup, KAMEZAWA Hiroyuki, (Tue Oct 12, 1:38 am)
Re: [PATCH 00/10] memcg: per cgroup dirty page accounting, KAMEZAWA Hiroyuki, (Sun Oct 17, 10:56 pm)