On Fri, Oct 29, 2010 at 03:09:09PM +0800, Greg Thelen wrote: > + > + 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; > + } I'm wondering why TestSet/TestClear and even the cgroup page flags for dirty/writeback/unstable pages are necessary at all (it helps to document in changelog if there are any). For example, VFS will call TestSetPageDirty() before calling mem_cgroup_inc_page_stat(MEMCG_NR_FILE_DIRTY), so there should be no chance of false double counting. Thanks, Fengguang -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>