Messages in this thread |  | | | Date | Wed, 24 Mar 2010 12:35:48 +0530 | | From | Balbir Singh <> | | Subject | Re: [BUGFIX][PATCH] fix race in file_mapped accounting in memcg |
| |
* KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> [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@jp.fujitsu.com> > > 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@linux.vnet.ibm.com>
-- Three Cheers, Balbir
|  |