From: Nikanth Karthikesan <knikanth@suse.de>
To: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: "David Rientjes" <rientjes@google.com>,
containers@lists.linux-foundation.org,
linux-kernel@vger.kernel.org, "Arve Hjønnevåg" <arve@android.com>,
"Evgeniy Polyakov" <zbr@ioremap.net>,
"Andrew Morton" <akpm@linux-foundation.org>,
"Chris Snook" <csnook@redhat.com>,
"Linus Torvalds" <torvalds@linux-foundation.org>,
"Paul Menage" <menage@google.com>,
"Alan Cox" <alan@lxorguk.ukuu.org.uk>
Subject: Re: [RFC] [PATCH] Cgroup based OOM killer controller
Date: Thu, 22 Jan 2009 10:42:50 +0530 [thread overview]
Message-ID: <200901221042.51622.knikanth@suse.de> (raw)
In-Reply-To: <20090122115324.b954c6a1.kamezawa.hiroyu@jp.fujitsu.com>
On Thursday 22 January 2009 08:23:24 KAMEZAWA Hiroyuki wrote:
> On Wed, 21 Jan 2009 12:49:50 -0800 (PST)
>
> David Rientjes <rientjes@google.com> wrote:
> > On Wed, 21 Jan 2009, Nikanth Karthikesan wrote:
> > > This is a container group based approach to override the oom killer
> > > selection without losing all the benefits of the current oom killer
> > > heuristics and oom_adj interface.
> > >
> > > It adds a tunable oom.victim to the oom cgroup. The oom killer will
> > > kill the process using the usual badness value but only within the
> > > cgroup with the maximum value for oom.victim before killing any process
> > > from a cgroup with a lesser oom.victim number. Oom killing could be
> > > disabled by setting oom.victim=0.
> >
> > This doesn't help in memcg or cpuset constrained oom conditions, which
> > still go through select_bad_process().
> >
> > If the oom.victim value is high for a specific cgroup and a memory
> > controller oom occurs in a disjoint cgroup, for example, it's possible to
> > needlessly kill tasks. Obviously that is up to the administrator to
> > configure, but may not be his or her desire for system-wide oom
> > conditions.
>
> Hmm...after this patch, select_bad_process's filter to select process will
> be
>
> ==
> 1. ->mm is NULL ? => don't select this
> 2. is init task ? => don't select this
> 3. is under specified memcg ? => don't select this
> 4. marked as MEMDIE ? => return -1.
> 5. PF_EXITING? => select this.
> 6. OOM_DISABLE ? => don't select this
> points = badness(p, uptime.tv_sec);
> 7. adjust point & select logic depends on OOM cgroup
> ==
>
> Not looks good ;)
>
Yes, we do throw away a lot of needless work done. But this is how we already
do and this is not a regression. But this could be used to improve the OOM
killer's speed.
> > It may be preferred to kill tasks in a specific cgroup first when the
> > entire system is out of memory or kill tasks within a cgroup attached to
> > a memory controller when it is oom.
>
> I agree here.
>
> Above filter logic should be
> ==
> current_victim_level++;
> 1. p is under oom cgroup of victim_level > current_victim_level => don't
> select this. 2. ->mm is NULL ? => don't select this
> 3. is init task ? => don't select this
> 4. is under specified memcg ? => don't select this
> 5. marked as MEMDIE ? => return -1.
> 6. PF_EXITING? => select this.
> 7. OOM_DISABLE ? => don't select this
> points = badness(p, uptime.tv_sec)
> ==
> But this will be too slow.
>
> I think do_each_thread() in select_bad_process() should be replaced with
> a routine like this, finally.
> ==
> for_each_oom_cgroup_in_victim_value_order() {
> for_each_threads_in_oom_cgroup(oom) {
> select one bad thread.
> }
> if (selected_one_is_enough_bad ?)
> return selected_one;
> }
> ==
>
Yes.
> And this can be a help for "spped up OOM killer" problem.
>
Yes.
Thanks
Nikanth
next prev parent reply other threads:[~2009-01-22 5:15 UTC|newest]
Thread overview: 126+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-21 11:08 [RFC] [PATCH] Cgroup based OOM killer controller Nikanth Karthikesan
[not found] ` <200901211638.23101.knikanth-l3A5Bk7waGM@public.gmane.org>
2009-01-21 13:17 ` Evgeniy Polyakov
2009-01-22 3:28 ` KAMEZAWA Hiroyuki
2009-01-26 19:54 ` Balbir Singh
2009-01-21 13:17 ` Evgeniy Polyakov
2009-01-21 15:24 ` Nikanth Karthikesan
[not found] ` <200901212054.34929.knikanth-l3A5Bk7waGM@public.gmane.org>
2009-01-21 20:49 ` David Rientjes
2009-01-21 20:49 ` David Rientjes
2009-01-22 2:53 ` KAMEZAWA Hiroyuki
[not found] ` <20090122115324.b954c6a1.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2009-01-22 5:12 ` Nikanth Karthikesan
2009-01-22 5:12 ` Nikanth Karthikesan [this message]
[not found] ` <alpine.DEB.2.00.0901211241040.21080-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2009-01-22 2:53 ` KAMEZAWA Hiroyuki
2009-01-22 5:12 ` Nikanth Karthikesan
2009-01-22 5:12 ` Nikanth Karthikesan
[not found] ` <200901221042.30957.knikanth-l3A5Bk7waGM@public.gmane.org>
2009-01-22 8:43 ` David Rientjes
2009-01-22 8:43 ` David Rientjes
[not found] ` <alpine.DEB.2.00.0901220036440.28850-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2009-01-22 9:23 ` Nikanth Karthikesan
2009-01-22 9:50 ` Evgeniy Polyakov
2009-01-22 9:23 ` Nikanth Karthikesan
[not found] ` <200901221453.14860.knikanth-l3A5Bk7waGM@public.gmane.org>
2009-01-22 9:39 ` David Rientjes
2009-01-22 9:39 ` David Rientjes
[not found] ` <alpine.DEB.2.00.0901220134200.32502-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2009-01-22 10:10 ` Nikanth Karthikesan
2009-01-22 10:10 ` Nikanth Karthikesan
[not found] ` <200901221540.08108.knikanth-l3A5Bk7waGM@public.gmane.org>
2009-01-22 10:18 ` David Rientjes
2009-01-22 10:18 ` David Rientjes
2009-01-22 9:50 ` Evgeniy Polyakov
[not found] ` <20090122095026.GA10579-i6C2adt8DTjR7s880joybQ@public.gmane.org>
2009-01-22 10:00 ` David Rientjes
2009-01-22 10:00 ` David Rientjes
2009-01-22 10:14 ` Evgeniy Polyakov
[not found] ` <20090122101424.GA12317-i6C2adt8DTjR7s880joybQ@public.gmane.org>
2009-01-22 10:27 ` David Rientjes
2009-01-22 10:27 ` David Rientjes
2009-01-22 13:21 ` Evgeniy Polyakov
2009-01-22 20:28 ` David Rientjes
[not found] ` <alpine.DEB.2.00.0901221216330.2085-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2009-01-22 21:06 ` Evgeniy Polyakov
2009-01-22 21:06 ` Evgeniy Polyakov
[not found] ` <20090122210613.GA10158-i6C2adt8DTjR7s880joybQ@public.gmane.org>
2009-01-22 21:35 ` David Rientjes
2009-01-22 21:35 ` David Rientjes
[not found] ` <alpine.DEB.2.00.0901221314010.6145-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2009-01-22 22:04 ` Evgeniy Polyakov
2009-01-22 22:04 ` Evgeniy Polyakov
2009-01-22 22:28 ` David Rientjes
[not found] ` <alpine.DEB.2.00.0901221415050.10427-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2009-01-22 22:53 ` Evgeniy Polyakov
2009-01-22 22:53 ` Evgeniy Polyakov
2009-01-22 23:25 ` Evgeniy Polyakov
[not found] ` <20090122225304.GA3551-i6C2adt8DTjR7s880joybQ@public.gmane.org>
2009-01-22 23:25 ` Evgeniy Polyakov
[not found] ` <20090122220446.GA1651-i6C2adt8DTjR7s880joybQ@public.gmane.org>
2009-01-22 22:28 ` David Rientjes
2009-01-27 23:55 ` Paul Menage
[not found] ` <20090122132133.GA17524-i6C2adt8DTjR7s880joybQ@public.gmane.org>
2009-01-22 20:28 ` David Rientjes
2009-01-27 23:55 ` Paul Menage
2009-01-23 9:45 ` Nikanth Karthikesan
[not found] ` <200901231515.37442.knikanth-l3A5Bk7waGM@public.gmane.org>
2009-01-23 10:33 ` David Rientjes
2009-01-23 10:33 ` David Rientjes
[not found] ` <alpine.DEB.2.00.0901230223500.15719-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2009-01-23 14:56 ` Nikanth Karthikesan
2009-01-23 14:56 ` Nikanth Karthikesan
[not found] ` <200901232026.16778.knikanth-l3A5Bk7waGM@public.gmane.org>
2009-01-23 20:44 ` David Rientjes
2009-01-28 1:00 ` Paul Menage
2009-01-23 20:44 ` David Rientjes
[not found] ` <alpine.DEB.2.00.0901231230370.14231-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2009-01-27 10:20 ` Nikanth Karthikesan
2009-01-27 10:20 ` Nikanth Karthikesan
[not found] ` <200901271550.16902.knikanth-l3A5Bk7waGM@public.gmane.org>
2009-01-27 10:53 ` David Rientjes
2009-01-27 10:53 ` David Rientjes
[not found] ` <alpine.DEB.2.00.0901270244380.23757-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2009-01-27 11:08 ` Nikanth Karthikesan
2009-01-27 11:08 ` Nikanth Karthikesan
[not found] ` <200901271638.21720.knikanth-l3A5Bk7waGM@public.gmane.org>
2009-01-27 11:21 ` David Rientjes
2009-01-27 11:21 ` David Rientjes
2009-01-27 11:37 ` Nikanth Karthikesan
[not found] ` <200901271707.48770.knikanth-l3A5Bk7waGM@public.gmane.org>
2009-01-27 20:29 ` David Rientjes
2009-01-27 20:29 ` David Rientjes
[not found] ` <alpine.DEB.2.00.0901270316040.25608-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2009-01-27 11:37 ` Nikanth Karthikesan
2009-01-28 1:00 ` Paul Menage
[not found] ` <6599ad830901271700u43e472dk742992334e456a13-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-01-29 15:48 ` Nikanth Karthikesan
2009-01-29 15:48 ` Nikanth Karthikesan
[not found] ` <alpine.DEB.2.00.0901220218120.2851-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2009-01-22 13:21 ` Evgeniy Polyakov
2009-01-23 9:45 ` Nikanth Karthikesan
[not found] ` <alpine.DEB.2.00.0901220156310.1738-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2009-01-22 10:14 ` Evgeniy Polyakov
[not found] ` <20090121131739.GB4997-i6C2adt8DTjR7s880joybQ@public.gmane.org>
2009-01-21 15:24 ` Nikanth Karthikesan
2009-01-22 3:28 ` KAMEZAWA Hiroyuki
2009-01-22 5:13 ` Nikanth Karthikesan
[not found] ` <200901221043.13684.knikanth-l3A5Bk7waGM@public.gmane.org>
2009-01-22 5:27 ` KAMEZAWA Hiroyuki
2009-01-22 5:39 ` Arve Hjønnevåg
2009-01-22 5:27 ` KAMEZAWA Hiroyuki
[not found] ` <20090122142721.34068fdf.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2009-01-22 6:11 ` Nikanth Karthikesan
2009-01-22 6:11 ` Nikanth Karthikesan
2009-01-22 5:39 ` Arve Hjønnevåg
2009-01-22 6:12 ` Nikanth Karthikesan
[not found] ` <200901221142.00803.knikanth-l3A5Bk7waGM@public.gmane.org>
2009-01-22 6:29 ` Arve Hjønnevåg
2009-01-22 6:29 ` Arve Hjønnevåg
2009-01-22 6:42 ` Nikanth Karthikesan
[not found] ` <d6200be20901212229y47353d3ft72fbfed6ffaba999-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-01-22 6:42 ` Nikanth Karthikesan
[not found] ` <d6200be20901212139u3683c829x4db1840a28986a6f-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-01-22 6:12 ` Nikanth Karthikesan
[not found] ` <20090122122843.7e94878e.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2009-01-22 5:13 ` Nikanth Karthikesan
2009-01-26 19:54 ` Balbir Singh
2009-01-26 19:56 ` Alan Cox
[not found] ` <20090126195622.1d5bf488-qBU/x9rampVanCEyBjwyrvXRex20P6io@public.gmane.org>
2009-01-27 7:02 ` KOSAKI Motohiro
2009-01-27 7:02 ` KOSAKI Motohiro
2009-01-27 7:26 ` Balbir Singh
2009-01-27 7:39 ` David Rientjes
2009-01-27 7:44 ` KOSAKI Motohiro
[not found] ` <20090127164238.D479.KOSAKI.MOTOHIRO-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2009-01-27 7:51 ` David Rientjes
2009-01-27 7:51 ` David Rientjes
[not found] ` <alpine.DEB.2.00.0901262350110.14525-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2009-01-27 9:31 ` Evgeniy Polyakov
2009-01-27 9:31 ` Evgeniy Polyakov
[not found] ` <20090127093105.GB2646-i6C2adt8DTjR7s880joybQ@public.gmane.org>
2009-01-27 9:37 ` David Rientjes
2009-01-27 9:37 ` David Rientjes
2009-01-27 13:40 ` Evgeniy Polyakov
2009-01-27 20:37 ` David Rientjes
2009-01-27 21:51 ` Evgeniy Polyakov
[not found] ` <alpine.DEB.2.00.0901271230140.21124-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2009-01-27 21:51 ` Evgeniy Polyakov
[not found] ` <20090127134038.GA18119-i6C2adt8DTjR7s880joybQ@public.gmane.org>
2009-01-27 20:37 ` David Rientjes
[not found] ` <alpine.DEB.2.00.0901270134360.20070-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2009-01-27 13:40 ` Evgeniy Polyakov
2009-01-27 10:40 ` KOSAKI Motohiro
2009-01-27 10:40 ` KOSAKI Motohiro
2009-01-27 13:45 ` Evgeniy Polyakov
2009-01-27 15:40 ` Balbir Singh
2009-01-27 21:54 ` Evgeniy Polyakov
[not found] ` <20090127154053.GQ504-SINUvgVNF2CyUtPGxGje5AC/G2K4zDHf@public.gmane.org>
2009-01-27 21:54 ` Evgeniy Polyakov
[not found] ` <20090127134559.GB18119-i6C2adt8DTjR7s880joybQ@public.gmane.org>
2009-01-27 15:40 ` Balbir Singh
2009-01-27 20:41 ` David Rientjes
2009-01-27 20:41 ` David Rientjes
[not found] ` <alpine.DEB.2.00.0901271238090.21124-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2009-01-27 21:55 ` Evgeniy Polyakov
2009-01-27 21:55 ` Evgeniy Polyakov
[not found] ` <20090127193058.D48B.KOSAKI.MOTOHIRO-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2009-01-27 13:45 ` Evgeniy Polyakov
[not found] ` <alpine.DEB.2.00.0901262325320.13157-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2009-01-27 7:44 ` KOSAKI Motohiro
[not found] ` <20090127155825.D476.KOSAKI.MOTOHIRO-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2009-01-27 7:26 ` Balbir Singh
2009-01-27 7:39 ` David Rientjes
[not found] ` <20090126195431.GC504-SINUvgVNF2CyUtPGxGje5AC/G2K4zDHf@public.gmane.org>
2009-01-26 19:56 ` Alan Cox
-- strict thread matches above, loose matches on Subject: below --
2009-01-21 11:08 Nikanth Karthikesan
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=200901221042.51622.knikanth@suse.de \
--to=knikanth@suse.de \
--cc=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=arve@android.com \
--cc=containers@lists.linux-foundation.org \
--cc=csnook@redhat.com \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=menage@google.com \
--cc=rientjes@google.com \
--cc=torvalds@linux-foundation.org \
--cc=zbr@ioremap.net \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.