On 03/14, David Rientjes wrote: > > On Mon, 14 Mar 2011, Oleg Nesterov wrote: > > > oom_kill_process() starts with victim_points == 0. This means that > > (most likely) any child has more points and can be killed erroneously. > > > > Also, "children has a different mm" doesn't match the reality, we > > should check child->mm != t->mm. This check is not exactly correct > > if t->mm == NULL but this doesn't really matter, oom_kill_task() > > will kill them anyway. > > > > Note: "Kill all processes sharing p->mm" in oom_kill_task() is wrong > > too. > > > > There're two issues you're addressing in this patch. It only kills a > child in place of its selected parent when: > > - the child has a higher badness score, and > > - it has a different ->mm. > > In the former case, NACK, we always want to sacrifice children regardless > of their badness score (as long as it is non-zero) if it has a separate > ->mm in place of its parent, Ah. So this was intentional? OK. I was hypnotized by the security implications, and this looked so "obviously wrong" to me. But, of course I can't judge when it comes to oom's heuristic, and you certainly know better. So, thanks for correcting me. Just a question... what about oom_kill_allocating_task? Probably Documentation/sysctl/vm.txt should be updated. Oleg. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>