From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932519Ab1COTbb (ORCPT ); Tue, 15 Mar 2011 15:31:31 -0400 Received: from mx1.redhat.com ([209.132.183.28]:6126 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932481Ab1COTba (ORCPT ); Tue, 15 Mar 2011 15:31:30 -0400 Date: Tue, 15 Mar 2011 20:21:45 +0100 From: Oleg Nesterov To: David Rientjes Cc: Hugh Dickins , Linus Torvalds , Andrew Morton , KOSAKI Motohiro , KAMEZAWA Hiroyuki , Andrey Vagin , Frantisek Hrbata , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 3/3 for 2.6.38] oom: oom_kill_process: fix the child_points logic Message-ID: <20110315192145.GC21640@redhat.com> References: <20110309151946.dea51cde.akpm@linux-foundation.org> <20110312123413.GA18351@redhat.com> <20110312134341.GA27275@redhat.com> <20110313212726.GA24530@redhat.com> <20110314190419.GA21845@redhat.com> <20110314190530.GD21845@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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.