Re: 3.0rc2 oops in mem_cgroup_from_task

From: KAMEZAWA Hiroyuki
Date: Thu Jun 09 2011 - 23:26:53 EST


On Fri, 10 Jun 2011 11:33:11 +0900
KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> wrote:

> On Thu, 9 Jun 2011 18:30:49 -0700 (PDT)
> Hugh Dickins <hughd@xxxxxxxxxx> wrote:

> > 781cc621 <mem_cgroup_from_task>:
> > 781cc621: 55 push %ebp
> > 781cc622: 31 c0 xor %eax,%eax
> > 781cc624: 89 e5 mov %esp,%ebp
> > 781cc626: 8b 55 08 mov 0x8(%ebp),%edx
> > 781cc629: 85 d2 test %edx,%edx
> > 781cc62b: 74 09 je 781cc636 <mem_cgroup_from_task+0x15>
> > 781cc62d: 8b 82 fc 08 00 00 mov 0x8fc(%edx),%eax
> > 781cc633: 8b 40 1c mov 0x1c(%eax),%eax <==========
> > 781cc636: c9 leave
> > 781cc637: c3 ret
> >
>
> then, access to task->cgroups->subsys[?] causes access to 6b6b6b87...
>
> Then, task->cgroups or task->cgroups->subsys contains bad pointer.
> Considering khugepaged, it grabs mm_struct and memcg make an access to
> (mm->owner)->cgroups->subsys.
>
> Then, from memcg's point of view, we need to doubt mm->owner is valid or not
> for this kind of tasks.
>

Dave's log shows 6b6b6b6b6b..., too.

I guess it as "POISON_FREE" of slab object. Then, task->cgroups may used after free.


Thanks,
-Kame

--
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/