Re: [BUGFIX][PATCH] fix race in file_mapped accounting in memcg

From: Balbir Singh
Date: Wed Mar 24 2010 - 03:06:05 EST


* 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 from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/