linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: David Rientjes <rientjes@google.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Andrea Arcangeli <andrea@suse.de>,
	Christoph Lameter <clameter@sgi.com>,
	Rik van Riel <riel@redhat.com>,
	linux-mm@kvack.org
Subject: Re: [patch 5/9] oom: serialize out of memory calls
Date: Fri, 21 Sep 2007 13:04:34 -0700 (PDT)	[thread overview]
Message-ID: <alpine.DEB.0.9999.0709211302240.8826@chino.kir.corp.google.com> (raw)
In-Reply-To: <20070921020147.334857f4.akpm@linux-foundation.org>

On Fri, 21 Sep 2007, Andrew Morton wrote:

> > Before invoking the OOM killer, a final allocation attempt with a very
> > high watermark is attempted.  Serialization needs to occur at this point
> > or it may be possible that the allocation could succeed after acquiring
> > the lock.  If the lock is contended, the task is put to sleep and the
> > allocation attempt is retried when rescheduled.
> 
> Am having trouble understanding this description.  How can it ever be a
> problem if an allocation succeeds??
> 
> Want to have another go, please?
> 

Ok, please replace the description in 
oom-serialize-out-of-memory-calls.patch with this:


A final allocation attempt with a very high watermark needs to be 
attempted before invoking out_of_memory().  OOM killer serialization needs 
to occur before this final attempt, otherwise tasks attempting to OOM-lock 
all zones in its zonelist may spin and acquire the lock unnecessarily 
after the OOM condition has already been alleviated.

If the final allocation does succeed, the zonelist is simply OOM-unlocked 
and __alloc_pages() returns the page.  Otherwise, the OOM killer is 
invoked.

If the task cannot acquire OOM-locks on all zones in its zonelist, it is 
put to sleep and the allocation is retried when it gets rescheduled.  One 
of its zones is already marked as being in the OOM killer so it'll 
hopefully be getting some free memory soon, at least enough to satisfy a 
high watermark allocation attempt.  This prevents needlessly killing a 
task when the OOM condition would have already been alleviated if it had 
simply been given enough time.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2007-09-21 20:04 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-20 20:23 [patch 0/9] oom killer serialization David Rientjes
2007-09-20 20:23 ` [patch 1/9] oom: move prototypes to appropriate header file David Rientjes
2007-09-20 20:23   ` [patch 2/9] oom: move constraints to enum David Rientjes
2007-09-20 20:23     ` [patch 3/9] oom: change all_unreclaimable zone member to flags David Rientjes
2007-09-20 20:23       ` [patch 4/9] oom: add per-zone locking David Rientjes
2007-09-20 20:23         ` [patch 5/9] oom: serialize out of memory calls David Rientjes
2007-09-20 20:23           ` [patch 6/9] oom: add oom_kill_asking_task sysctl David Rientjes
2007-09-20 20:23             ` [patch 7/9] oom: suppress extraneous stack and memory dump David Rientjes
2007-09-20 20:23               ` [patch 8/9] oom: compare cpuset mems_allowed instead of exclusive ancestors David Rientjes
2007-09-20 20:23                 ` [patch 9/9] oom: do not take callback_mutex David Rientjes
2007-09-20 22:04                   ` Christoph Lameter
2007-09-20 22:01                 ` [patch 8/9] oom: compare cpuset mems_allowed instead of exclusive ancestors Christoph Lameter
2007-09-20 22:00               ` [patch 7/9] oom: suppress extraneous stack and memory dump Christoph Lameter
2007-09-20 22:03             ` [patch 6/9] oom: add oom_kill_asking_task sysctl Christoph Lameter
2007-09-20 22:07               ` David Rientjes
2007-09-20 22:09                 ` Christoph Lameter
2007-09-21  9:05             ` Andrew Morton
2007-09-20 21:59           ` [patch 5/9] oom: serialize out of memory calls Christoph Lameter
2007-09-21  9:01           ` Andrew Morton
2007-09-21 20:04             ` David Rientjes [this message]
2007-09-20 21:59         ` [patch 4/9] oom: add per-zone locking Christoph Lameter
2007-09-20 22:03           ` David Rientjes
2007-09-20 22:05             ` Christoph Lameter
2007-09-20 22:12               ` David Rientjes
2007-09-20 22:26                 ` Christoph Lameter
2007-09-20 22:48                   ` David Rientjes
2007-09-21  8:59                     ` Andrew Morton
2007-09-20 21:56       ` [patch 3/9] oom: change all_unreclaimable zone member to flags Christoph Lameter
2007-09-20 21:58         ` David Rientjes
2007-09-21  8:55       ` Andrew Morton
2007-09-21  9:12 ` [patch 0/9] oom killer serialization Andrew Morton
2007-09-21  9:21   ` David Rientjes
2007-09-21 19:13     ` David Rientjes
2007-09-21 19:15   ` Christoph Lameter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=alpine.DEB.0.9999.0709211302240.8826@chino.kir.corp.google.com \
    --to=rientjes@google.com \
    --cc=akpm@linux-foundation.org \
    --cc=andrea@suse.de \
    --cc=clameter@sgi.com \
    --cc=linux-mm@kvack.org \
    --cc=riel@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox