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>