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>
next prev parent 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