On Mon 27-06-16 22:40:17, Oleg Nesterov wrote: > On 06/25, Tetsuo Handa wrote: > > > > Oleg Nesterov wrote: > > > And in any case I don't understand this patch but I have to admit that > > > I failed to force myself to read the changelog and the actual change ;) > > > In any case I agree that we should not set MMF_MEMDIE if ->mm == NULL, > > > and if we ensure this then I do not understand why we can't rely on > > > MMF_OOM_REAPED. Ignoring the obvious races, if ->oom_victims != 0 then > > > find_lock_task_mm() should succed. > > > > Since we are using > > > > mm = current->mm; > > current->mm = NULL; > > __mmput(mm); (may block for unbounded period waiting for somebody else's memory allocation) > > exit_oom_victim(current); > > > > sequence, we won't be able to make find_lock_task_mm(tsk) != NULL when > > tsk->signal->oom_victims != 0 unless we change this sequence. > > Ah, but this is clear, note the "Ignoring the obvious races" above. > Can't we fix this race? I am a bit lost, but iirc we want this anyway > to ensure that we do not set TIF_MEMDIE if ->mm == NULL ? This is not about a race it is about not reaching exit_oom_victim and unblock the oom killer from selecting another victim. > Hmm. Although I am not sure I really understand the "may block for > unbounded period ..." above. Do you mean khugepaged_exit? __mmput->exit_aio can wait for IO to complete and who knows what that might depend on. Who knows how many others are lurking there. -- 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>