On Wed 07-10-15 14:00:16, Oleg Nesterov wrote: > On 10/07, Tetsuo Handa wrote: > > > > Oleg Nesterov wrote: > > > Anyway. Perhaps it makes sense to abort the for_each_vma() loop if > > > freed_enough_mem() == T. But it is absolutely not clear to me how we > > > should define this freed_enough_mem(), so I think we should do this > > > later. > > > > Maybe > > > > bool freed_enough_mem(void) { !atomic_read(&oom_victims); } > > > > if we change to call mark_oom_victim() on all threads which should be > > killed as OOM victims. > > Well, in this case > > if (atomic_read(&mm->mm_users) == 1) > break; > > makes much more sense. Plus we do not need to change mark_oom_victim(). > > Lets discuss this later? Yes I do not think this is that important if a kernel thread is going to reclaim the address space. It will effectively free memory on behalf of the victim so a longer scan shouldn't be such a big problem. At least not for the first implementation. -- 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>