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