From: Evgeniy Polyakov <zbr@ioremap.net>
To: Theodore Tso <tytso@mit.edu>, Alan Cox <alan@lxorguk.ukuu.org.uk>,
David Rientjes <rientjes@google.com>,
Bill Davidsen <davidsen@tmr.com>,
linux-kernel@vger.kernel.org,
Andrew Morton <akpm@linux-foundation.org>,
Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: Linux killed Kenny, bastard!
Date: Tue, 13 Jan 2009 16:35:55 +0300 [thread overview]
Message-ID: <20090113133555.GA28107@ioremap.net> (raw)
In-Reply-To: <20090113131937.GB17664@mit.edu>
On Tue, Jan 13, 2009 at 08:19:37AM -0500, Theodore Tso (tytso@mit.edu) wrote:
> Instead of trying to specify which process should be protected from
> the OOM killer by name, how about something which is inherited from
> the parent process? After all, if having the child not get killed due
> to OOM is important, the child won't even have a chance to run if the
> parent gets killed off. And in fact, we have something that fits that
> bill fairly well; getrlimit()/setrlimit(). Why not define a new
> resource limit which specifies a relative immunity to the oom_killer?
>
> Most of the infrastructure to support that will already be in place
> (i.e., shell support, PAM support in /etc/securitylimits.conf); all
> that would need to be done is to teach a few userspace
> programs/libraries about the new resource limit.
>
> This would be a much cleaner approach, I would think.
It will be similar to oom_adj parameter (although I did not find where
it is inherited from the parent), but with the different updating
interface. I do not think it will be anyhow easier to solve the problem,
since it is not directly in the parent/child hierarchy, since there are
cases when we do want to kill children (this phrase just screams for the
addition: and eat them), but only some processes which are not really
the most significant.
Existing oom score adjustment mechanism works for this cases, but it is
by itself is not convenient to be used. Even its documentation does not
say how it is used :) It is not just simple add/remove, but score
multiplication or division by the two in the power of the oom_adj value.
Plus really no one knows how scores are calculated except those who read
the mm/kill.c before going to sleep.
So effectively oom_adj only works as enable/disable switch, and since no
one knows how to tune it, it is better to do not touch at all. And get
ssh killed. I believe if it is ever used then only to disable oom at
all, which is wrong, since task still may be killed but after some
others. My patch adds a simple priority for that based on the name of
the process, which are known to the administrators who maintain given
system.
--
Evgeniy Polyakov
next prev parent reply other threads:[~2009-01-13 13:36 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-12 15:33 Linux killed Kenny, bastard! Evgeniy Polyakov
2009-01-12 15:44 ` Dave Jones
2009-01-12 15:48 ` Evgeniy Polyakov
2009-01-12 15:51 ` Alan Cox
2009-01-12 15:52 ` Evgeniy Polyakov
2009-01-12 21:29 ` Chris Snook
2009-01-12 21:42 ` Evgeniy Polyakov
2009-01-13 13:52 ` [why oom_adj does not work] " Evgeniy Polyakov
2009-01-13 14:06 ` Alan Cox
2009-01-13 14:24 ` Evgeniy Polyakov
2009-01-13 15:00 ` Balbir Singh
2009-01-13 15:21 ` Evgeniy Polyakov
2009-01-13 18:04 ` Valdis.Kletnieks
2009-01-13 19:46 ` David Rientjes
2009-01-13 21:33 ` Evgeniy Polyakov
2009-01-13 21:39 ` David Rientjes
2009-01-13 22:05 ` Evgeniy Polyakov
2009-01-14 16:12 ` OOM documentation update [was: Linux killed Kenny, bastard!] Evgeniy Polyakov
2009-01-14 17:06 ` [take2] " Evgeniy Polyakov
2009-01-14 21:34 ` Randy Dunlap
2009-01-14 21:53 ` Bryan Donlan
2009-01-14 22:10 ` Evgeniy Polyakov
2009-01-14 22:14 ` [take3] " Evgeniy Polyakov
2009-01-15 0:58 ` David Rientjes
2009-01-15 8:51 ` Evgeniy Polyakov
2009-01-15 8:57 ` [take4] " Evgeniy Polyakov
2009-01-15 11:13 ` David Rientjes
2009-01-12 15:49 ` Linux killed Kenny, bastard! Alan Cox
2009-01-12 15:50 ` Evgeniy Polyakov
2009-01-12 15:52 ` Alan Cox
2009-01-12 15:56 ` Evgeniy Polyakov
2009-01-12 16:19 ` Alan Cox
2009-01-12 16:29 ` Evgeniy Polyakov
2009-01-12 23:00 ` Bill Davidsen
2009-01-12 23:17 ` Evgeniy Polyakov
2009-01-13 1:53 ` David Rientjes
2009-01-13 8:52 ` Evgeniy Polyakov
2009-01-13 9:54 ` David Rientjes
2009-01-13 11:54 ` Evgeniy Polyakov
2009-01-13 12:15 ` Alan Cox
2009-01-13 12:29 ` Evgeniy Polyakov
2009-01-13 13:19 ` Theodore Tso
2009-01-13 13:35 ` Evgeniy Polyakov [this message]
2009-01-14 0:24 ` Bill Davidsen
2009-01-14 0:35 ` Evgeniy Polyakov
2009-01-13 13:47 ` Alan Cox
2009-01-13 19:36 ` David Rientjes
2009-01-13 21:46 ` Evgeniy Polyakov
2009-01-13 22:49 ` Theodore Tso
2009-01-13 23:02 ` Evgeniy Polyakov
2009-01-14 1:11 ` Theodore Tso
2009-01-14 1:20 ` Evgeniy Polyakov
2009-01-14 4:06 ` Theodore Tso
2009-01-13 23:10 ` David Rientjes
2009-01-13 23:35 ` Evgeniy Polyakov
2009-01-13 23:43 ` David Rientjes
2009-01-13 23:55 ` Evgeniy Polyakov
2009-01-14 0:32 ` David Rientjes
2009-01-14 0:53 ` Evgeniy Polyakov
2009-01-14 4:23 ` Valdis.Kletnieks
2009-01-14 9:07 ` Evgeniy Polyakov
2009-01-13 19:15 ` David Rientjes
2009-01-13 22:00 ` Evgeniy Polyakov
2009-01-13 23:26 ` Valdis.Kletnieks
2009-01-13 23:36 ` Evgeniy Polyakov
2009-01-13 13:41 ` Jan-Frode Myklebust
2009-01-13 13:59 ` Alan Cox
2009-01-12 16:22 ` Dave Jones
2009-01-12 16:28 ` Evgeniy Polyakov
2009-01-13 16:35 ` KOSAKI Motohiro
2009-01-13 22:04 ` Evgeniy Polyakov
-- strict thread matches above, loose matches on Subject: below --
2009-01-13 10:58 Tomasz Chmielewski
2009-01-13 12:20 ` Evgeniy Polyakov
[not found] <bTxPW-1lH-13@gated-at.bofh.it>
[not found] ` <bTE53-5LJ-13@gated-at.bofh.it>
[not found] ` <bTEeI-5Y0-15@gated-at.bofh.it>
[not found] ` <bTGTe-1K5-3@gated-at.bofh.it>
[not found] ` <bTNi6-3kb-9@gated-at.bofh.it>
[not found] ` <bTOea-4QT-1@gated-at.bofh.it>
[not found] ` <bTQ6f-7Qs-1@gated-at.bofh.it>
[not found] ` <bTQpv-5o-3@gated-at.bofh.it>
[not found] ` <bTQzd-iK-5@gated-at.bofh.it>
[not found] ` <bTXhp-2IA-31@gated-at.bofh.it>
[not found] ` <bTZjb-62D-25@gated-at.bofh.it>
2009-01-17 15:21 ` Bodo Eggert
2009-01-17 15:41 ` Evgeniy Polyakov
2009-01-18 12:49 ` Bodo Eggert
2009-01-18 13:17 ` Evgeniy Polyakov
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=20090113133555.GA28107@ioremap.net \
--to=zbr@ioremap.net \
--cc=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=davidsen@tmr.com \
--cc=linux-kernel@vger.kernel.org \
--cc=rientjes@google.com \
--cc=torvalds@linux-foundation.org \
--cc=tytso@mit.edu \
/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