From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756823AbZEGUZ2 (ORCPT ); Thu, 7 May 2009 16:25:28 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752187AbZEGUZQ (ORCPT ); Thu, 7 May 2009 16:25:16 -0400 Received: from smtp-out.google.com ([216.239.33.17]:43864 "EHLO smtp-out.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751684AbZEGUZO (ORCPT ); Thu, 7 May 2009 16:25:14 -0400 DomainKey-Signature: a=rsa-sha1; s=beta; d=google.com; c=nofws; q=dns; h=date:from:x-x-sender:to:cc:subject:in-reply-to:message-id: references:user-agent:mime-version:content-type:x-system-of-record; b=uR72zBd00vZ+bc/g+HXmUOermRGEfD8mhsI6HEXtSKAcIZMWHKLhgR3FdwrbtyzeP lfYuoC6K9B0vZZKG3BfAA== Date: Thu, 7 May 2009 13:25:06 -0700 (PDT) From: David Rientjes X-X-Sender: rientjes@chino.kir.corp.google.com To: "Rafael J. Wysocki" cc: Andrew Morton , fengguang.wu@intel.com, linux-pm@lists.linux-foundation.org, pavel@ucw.cz, torvalds@linux-foundation.org, jens.axboe@oracle.com, alan-jenkins@tuffmail.co.uk, linux-kernel@vger.kernel.org, kernel-testers@vger.kernel.org Subject: Re: [PATCH 1/5] mm: Add __GFP_NO_OOM_KILL flag In-Reply-To: <200905072218.50782.rjw@sisk.pl> Message-ID: References: <200905072133.48917.rjw@sisk.pl> <20090507130202.34cbe37a.akpm@linux-foundation.org> <200905072218.50782.rjw@sisk.pl> User-Agent: Alpine 2.00 (DEB 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-System-Of-Record: true Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 7 May 2009, Rafael J. Wysocki wrote: > OK, let's try with __GFP_NO_OOM_KILL first. If there's too much disagreement, > I'll use the freezer-based approach instead. > Third time I'm going to suggest this, and I'd like a response on why it's not possible instead of being ignored. All of your tasks are in D state other than kthreads, right? That means they won't be in the oom killer (thus no zones are oom locked), so you can easily do this struct zone *z; for_each_populated_zone(z) zone_set_flag(z, ZONE_OOM_LOCKED); and then for_each_populated_zone(z) zone_clear_flag(z, ZONE_OOM_LOCKED); The serialization is done with trylocks so this will never invoke the oom killer because all zones in the allocator's zonelist will be oom locked. Why does this not work for you? From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Rientjes Subject: Re: [PATCH 1/5] mm: Add __GFP_NO_OOM_KILL flag Date: Thu, 7 May 2009 13:25:06 -0700 (PDT) Message-ID: References: <200905072133.48917.rjw@sisk.pl> <20090507130202.34cbe37a.akpm@linux-foundation.org> <200905072218.50782.rjw@sisk.pl> Mime-Version: 1.0 Return-path: DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1241727912; bh=pW+fBjpTnRQbWlSkm+woTQyzy9o=; h=DomainKey-Signature:Date:From:X-X-Sender:To:cc:Subject: In-Reply-To:Message-ID:References:User-Agent:MIME-Version: Content-Type:X-System-Of-Record; b=GNu+xkV10WUttog5f/AZMlAleSsERMF wThf63yRzq3UxlMpWOmHZvkZUZixM6gtGrIfY+JMo+GK2AvLb7BZ+xg== In-Reply-To: <200905072218.50782.rjw-KKrjLPT3xs0@public.gmane.org> Sender: kernel-testers-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-ID: Content-Type: TEXT/PLAIN; charset="us-ascii" Content-Transfer-Encoding: 7bit To: "Rafael J. Wysocki" Cc: Andrew Morton , fengguang.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org, linux-pm-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, pavel-+ZI9xUNit7I@public.gmane.org, torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org, jens.axboe-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org, alan-jenkins-cCz0Lq7MMjm9FHfhHBbuYA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, kernel-testers-u79uwXL29TY76Z2rM5mHXA@public.gmane.org On Thu, 7 May 2009, Rafael J. Wysocki wrote: > OK, let's try with __GFP_NO_OOM_KILL first. If there's too much disagreement, > I'll use the freezer-based approach instead. > Third time I'm going to suggest this, and I'd like a response on why it's not possible instead of being ignored. All of your tasks are in D state other than kthreads, right? That means they won't be in the oom killer (thus no zones are oom locked), so you can easily do this struct zone *z; for_each_populated_zone(z) zone_set_flag(z, ZONE_OOM_LOCKED); and then for_each_populated_zone(z) zone_clear_flag(z, ZONE_OOM_LOCKED); The serialization is done with trylocks so this will never invoke the oom killer because all zones in the allocator's zonelist will be oom locked. Why does this not work for you?