On Mon 01-06-15 22:04:28, Tetsuo Handa wrote: > Michal Hocko wrote: > > > Likewise, move do_send_sig_info(SIGKILL, victim) to before > > > mark_oom_victim(victim) in case for_each_process() took very long time, > > > for the OOM victim can abuse ALLOC_NO_WATERMARKS by TIF_MEMDIE via e.g. > > > memset() in user space until SIGKILL is delivered. > > > > This is unrelated and I believe even not necessary. > > Why unnecessary? If serial console is configured and printing a series of > "Kill process %d (%s) sharing same memory" took a few seconds, the OOM > victim can consume all memory via malloc() + memset(), can't it? Can? You are generating one corner case after another. All of them without actually showing it can happen in the real life. There are million+1 corner cases possible yet we would prefer to handle those that have changes to happen in the real life. So let's focus on the real life scenarios. > What to do if the OOM victim cannot die immediately after consuming > all memory? I think that sending SIGKILL before setting TIF_MEMDIE > helps reducing consumption of memory reserves. I think that SIGKILL before or after mark_oom_victim has close to zero effect. If you think that we should send SIGKILL before looking for tasks sharing mm then why not - BUT AGAIN A SEPARATE PATCH WITH A JUSTIFICATION please. -- 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>