* KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> [2010-03-24 15:43:24]: > A fix for race in file_mapped statistics. I noticed this race while discussing > Andrea's dirty accounting patch series. > At the end of discusstion, I said "please don't touch file mapped". So, this bugfix > should be posted as an independent patch. > Tested on the latest mmotm. > > Thanks, > -Kame > > == > From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> > > Now, memcg's FILE_MAPPED accounting has following race with > move_account (happens at rmdir()). > > increment page->mapcount (rmap.c) > mem_cgroup_update_file_mapped() move_account() > lock_page_cgroup() > check page_mapped() if > page_mapped(page)>1 { > FILE_MAPPED -1 from old memcg > FILE_MAPPED +1 to old memcg > } > ..... > overwrite pc->mem_cgroup > unlock_page_cgroup() > lock_page_cgroup() > FILE_MAPPED + 1 to pc->mem_cgroup > unlock_page_cgroup() > > Then, > old memcg (-1 file mapped) > new memcg (+2 file mapped) > Good catch! Reviewed-by: Balbir Singh <balbir@xxxxxxxxxxxxxxxxxx> -- Three Cheers, Balbir -- 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>