Messages in this thread | | | Date | Mon, 8 Nov 2010 10:50:55 +0100 | From | Johannes Weiner <> | Subject | Re: [BUGFIX][PATCH] fix wrong VM_BUG_ON() in try_charge()'s mm->owner check |
| |
On Thu, Nov 04, 2010 at 10:31:58AM -0700, Hugh Dickins wrote: > On Wed, 3 Nov 2010, Hiroyuki Kamezawa wrote: > > I'm sorry for attached file, I have to use unusual mailer this time. > > This is a fix for wrong VM_BUG_ON() for mm/memcontol.c > > Thanks, Kame, that's good: I've inlined it below with Balbir's Review, > my Ack, and a Cc: stable@kernel.org. > > Hugh > > > [PATCH] memcg: fix wrong VM_BUG_ON() in try_charge()'s mm->owner check > > At __mem_cgroup_try_charge(), VM_BUG_ON(!mm->owner) is checked. > But as commented in mem_cgroup_from_task(), mm->owner can be NULL in some racy > case. This check of VM_BUG_ON() is bad. > > A possible story to hit this is at swapoff()->try_to_unuse(). It passes > mm_struct to mem_cgroup_try_charge_swapin() while mm->owner is NULL. If we > can't get proper mem_cgroup from swap_cgroup information, mm->owner is used > as charge target and we see NULL. > > Cc: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp> > Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> > Reported-by: Hugh Dickins <hughd@google.com> > Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> > Reviewed-by: Balbir Singh <balbir@linux.vnet.ibm.com> > Acked-by: Hugh Dickins <hughd@google.com> > Cc: stable@kernel.org
Reviewed-by: Johannes Weiner <hannes@cmpxchg.org>
| |