On Tue, Nov 24, 2015 at 11:31 PM, Johannes Weiner <hannes@xxxxxxxxxxx> wrote: > Hi Dmitry, > > On Tue, Nov 24, 2015 at 02:50:26PM +0100, Dmitry Vyukov wrote: >> As a blind guess, I've added the following BUG into copy_process: >> >> diff --git a/kernel/fork.c b/kernel/fork.c >> index b4dc490..c5667e8 100644 >> --- a/kernel/fork.c >> +++ b/kernel/fork.c >> @@ -1620,6 +1620,8 @@ static struct task_struct *copy_process(unsigned >> long clone_flags, >> trace_task_newtask(p, clone_flags); >> uprobe_copy_process(p, clone_flags); >> >> + BUG_ON(p->memcg_may_oom); >> + >> return p; > > Thanks for your report. > > I don't see how this could happen through the legitimate setters of > p->memcg_may_oom. Something must clobber it. What happens with the > following patch applied? > > diff --git a/include/linux/sched.h b/include/linux/sched.h > index edad7a4..42e1285 100644 > --- a/include/linux/sched.h > +++ b/include/linux/sched.h > @@ -1463,9 +1463,11 @@ struct task_struct { > unsigned sched_reset_on_fork:1; > unsigned sched_contributes_to_load:1; > unsigned sched_migrated:1; > + unsigned dummy_a:1; > #ifdef CONFIG_MEMCG > unsigned memcg_may_oom:1; > #endif > + unsigned dummy_b:1; > #ifdef CONFIG_MEMCG_KMEM > unsigned memcg_kmem_skip_account:1; > #endif > diff --git a/kernel/fork.c b/kernel/fork.c > index f97f2c4..ab6f7ba 100644 > --- a/kernel/fork.c > +++ b/kernel/fork.c > @@ -1617,6 +1617,12 @@ static struct task_struct *copy_process(unsigned long clone_flags, > trace_task_newtask(p, clone_flags); > uprobe_copy_process(p, clone_flags); > > + if (p->dummy_a || p->dummy_b || p->memcg_may_oom) { > + printk(KERN_ALERT "dummy_a:%d dummy_b:%d memcg_may_oom:%d\n", > + p->dummy_a, p->dummy_b, p->memcg_may_oom); > + BUG(); > + } > + > return p; > > bad_fork_cancel_cgroup: I cannot reproduce the condition again, either with your patch or with mine patch... Will try harder. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>