On Tue 05-09-17 21:23:57, Roman Gushchin wrote: > On Tue, Sep 05, 2017 at 04:57:00PM +0200, Michal Hocko wrote: [...] > > > @@ -810,6 +810,9 @@ static void __oom_kill_process(struct task_struct *victim) > > > struct mm_struct *mm; > > > bool can_oom_reap = true; > > > > > > + if (is_global_init(victim) || (victim->flags & PF_KTHREAD)) > > > + return; > > > + > > > > This will leak a reference to the victim AFACS > > Good catch! > I didn't fix this after moving reference dropping into __oom_kill_process(). > Fixed. Btw. didn't you want to check victim->signal->oom_score_adj == OOM_SCORE_ADJ_MIN here as well? Maybe I've missed something but you still can kill a task which is oom disabled which I thought we agreed is the wrong thing to do. -- Michal Hocko SUSE Labs -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html