On Tue 27-03-18 20:19:30, Tetsuo Handa wrote: > If the OOM victim is holding mm->mmap_sem held for write, and if the OOM > victim can interrupt operations which need mm->mmap_sem held for write, > we can downgrade mm->mmap_sem upon SIGKILL and the OOM reaper will be > able to reap the OOM victim's memory. This really begs for much better explanation. Why is it safe? Are you assuming that the killed task will not perform any changes on the address space? What about ongoing page faults or other operations deeper in the call chain. Why they are safe to change things for the child during the copy? I am not saying this is wrong, I would have to think about that much more because mmap_sem tends to be used on many surprising places and the write lock just hide them all. -- Michal Hocko SUSE Labs