linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: David Rientjes <rientjes@google.com>
To: Paul Jackson <pj@sgi.com>
Cc: clameter@sgi.com, andrea@suse.de, akpm@linux-foundation.org,
	linux-mm@kvack.org
Subject: Re: [patch 4/4] oom: serialize for cpusets
Date: Thu, 28 Jun 2007 11:13:36 -0700 (PDT)	[thread overview]
Message-ID: <alpine.DEB.0.99.0706281104490.20980@chino.kir.corp.google.com> (raw)
In-Reply-To: <20070628020302.bb0eea6a.pj@sgi.com>

On Thu, 28 Jun 2007, Paul Jackson wrote:

> Do you have real world cases where your change is necessary?  Perhaps
> you could describe those scenarios a bit, so that we can separate out
> what's going wrong, from the possible remedies, and so we can get a
> sense of the importance of this proposed tweak.
> 

It's pretty simple to show how killing current is not the best choice for 
cpuset-constrained memory allocations that encounter an OOM condition.

If you attach all your system tasks to a single small node and then 
attempt to allocate large amounts of memory in that node, tasks get killed 
unnecessarily.  This is a good way to approximate a cpuset's memory 
pressure in real-world examples.  The actual rogue task can avoid getting 
killed by simply not allocating the last N kB in that node while other 
tasks, such as sshd or sendmail, require memory on a spurious basis.  So 
we've often seen tasks such as those get OOM killed even though they don't 
alleviate the condition much at all: sshd and sendmail are not normally 
memory hogs.

The much better policy in terms of sharing memory among a cpuset's task is 
to kill the actual rogue task which we can estimate pretty well with 
select_bad_process() since it takes into consideration, most importantly, 
the total VM size.

So my belief is that it is better to kill one large memory-hogging task in 
a cpuset instead of killing multiple smaller ones based on their 
scheduling and unfortunate luck of being the one to enter the OOM killer.  
Even worse is when the OOM killer, which is not at all serialized for 
cpuset-constrained allocations at present, kills multiple smaller tasks 
before killing the rogue task.  Then those previous kills were unnecessary 
and certainly would qualify as a strong example for why current git's 
behavior is broken.

		David

--
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-06-28 18:13 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-27 14:44 [patch 1/4] oom: extract deadlock helper function David Rientjes
2007-06-27 14:44 ` [patch 2/4] oom: select process to kill for cpusets David Rientjes
2007-06-27 14:44   ` [patch 3/4] oom: extract select helper function David Rientjes
2007-06-27 14:44     ` [patch 4/4] oom: serialize for cpusets David Rientjes
2007-06-27 21:53       ` Christoph Lameter
2007-06-27 22:13         ` Paul Jackson
2007-06-28  6:24           ` David Rientjes
2007-06-28  7:33             ` Paul Jackson
2007-06-28  8:05               ` David Rientjes
2007-06-28  9:03                 ` Paul Jackson
2007-06-28 18:13                   ` David Rientjes [this message]
2007-06-28 18:55                     ` Paul Jackson
2007-06-28 19:27                       ` Paul Menage
2007-06-28 20:15                         ` Paul Jackson
2007-06-28 20:43                       ` David Rientjes
2007-06-29  1:33                     ` Christoph Lameter
2007-06-29  4:07                       ` David Rientjes
2007-06-28  0:26         ` Andrea Arcangeli
2007-06-28 20:41       ` [patch 5/4] oom: add oom_kill_asking_task flag David Rientjes
2007-06-28 22:07         ` Paul Jackson
2007-06-27 21:52   ` [patch 2/4] oom: select process to kill for cpusets Christoph Lameter
2007-06-28  6:13     ` David Rientjes
2007-07-26  6:15 ` [patch 1/4] oom: extract deadlock helper function David Rientjes
2007-07-26  6:25   ` Andrew Morton
2007-07-26  7:29     ` David Rientjes

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.99.0706281104490.20980@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=pj@sgi.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