Thread (58 messages) 58 messages, 6 authors, 2012-03-12

Re: [PATCH 2/9] memcg: add dirty page accounting infrastructure

From: Andrew Morton <akpm@linux-foundation.org>
Date: 2012-02-28 22:37:41
Also in: lkml

On Tue, 28 Feb 2012 22:00:24 +0800
Fengguang Wu [off-list ref] wrote:
quoted hunk ↗ jump to hunk
From: Greg Thelen <redacted>

Add memcg routines to count dirty, writeback, and unstable_NFS pages.
These routines are not yet used by the kernel to count such pages.  A
later change adds kernel calls to these new routines.

As inode pages are marked dirty, if the dirtied page's cgroup differs
from the inode's cgroup, then mark the inode shared across several
cgroup.

...
@@ -1885,6 +1888,44 @@ void mem_cgroup_update_page_stat(struct 
 			ClearPageCgroupFileMapped(pc);
 		idx = MEM_CGROUP_STAT_FILE_MAPPED;
 		break;
+
+	case MEMCG_NR_FILE_DIRTY:
+		/* Use Test{Set,Clear} to only un/charge the memcg once. */
+		if (val > 0) {
+			if (TestSetPageCgroupFileDirty(pc))
+				val = 0;
+		} else {
+			if (!TestClearPageCgroupFileDirty(pc))
+				val = 0;
+		}
Made me scratch my head for a while, but I see now that the `val' arg
to (the undocumented) mem_cgroup_update_page_stat() can only ever have
the values 1 or -1.  I hope.
...
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  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@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help