public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Evgeniy Polyakov <zbr@ioremap.net>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Dave Jones <davej@redhat.com>,
	linux-kernel@vger.kernel.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Linus Torvalds <torvalds@linux-foundation.org>
Subject: [why oom_adj does not work] Re: Linux killed Kenny, bastard!
Date: Tue, 13 Jan 2009 16:52:46 +0300	[thread overview]
Message-ID: <20090113135246.GA29251@ioremap.net> (raw)
In-Reply-To: <20090112155108.2646b3ae@lxorguk.ukuu.org.uk>

On Mon, Jan 12, 2009 at 03:51:08PM +0000, Alan Cox (alan@lxorguk.ukuu.org.uk) wrote:
> > Well, Kenny has to die, but if we still decide to change the world, here
> > is the fist step.
> 
> NAK this entire thing - we have an existing interface that does the job
> far better.

Mwahaha, I just checked how scores are calculated, so that userspace
could adjust them. Let's start with beginning:

	list_for_each_entry(child, &p->children, sibling) {
		task_lock(child);
		if (child->mm != mm && child->mm)
			points += child->mm->total_vm/2 + 1;
		task_unlock(child);
	}

	/*
	 * CPU time is in tens of seconds and run time is in thousands
         * of seconds. There is no particular reason for this other than
         * that it turned out to work very well in practice.
	 */
	cpu_time = (cputime_to_jiffies(p->utime) + cputime_to_jiffies(p->stime))
		>> (SHIFT_HZ + 3);

	if (uptime >= p->start_time.tv_sec)
		run_time = (uptime - p->start_time.tv_sec) >> 10;
	else
		run_time = 0;

	s = int_sqrt(cpu_time);
	if (s)
		points /= s;
	s = int_sqrt(int_sqrt(run_time));
	if (s)
		points /= s;

Do you _REALLY_ think anyone can calculate it yourself and then properly
calculate adjustment used to properly select oom-killed process?

I can not and will not even try if I would be an admin of the given
system. So, Alan, until you can calc that numbers in mind and then do
this for the whole heavy loaded system, please do not spread the idea
that oom_adj can be used to tune the oom-killer.
And no, reading data from /proc/.../oom_score is not enough, since
they change with time, so the same will be needed to be done to tune
the adjustment?

So far my patch is the sanest way to deal with the OOM selection, when
we have to differentiate some processes. I agree, it is not the best
solution, but it is way ahead of what we have right now for the users
and not hardcore kernel hackers.

-- 
	Evgeniy Polyakov

  parent reply	other threads:[~2009-01-13 13:53 UTC|newest]

Thread overview: 83+ 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       ` Evgeniy Polyakov [this message]
2009-01-13 14:06         ` [why oom_adj does not work] " 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
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
     [not found] <bTx3z-8bU-23@gated-at.bofh.it>
     [not found] ` <bTxdg-8sZ-23@gated-at.bofh.it>
     [not found]   ` <bTxdg-8sZ-21@gated-at.bofh.it>
     [not found]     ` <bTxmW-hf-1@gated-at.bofh.it>
     [not found]       ` <bTRYr-2up-21@gated-at.bofh.it>
2009-01-14 19:18         ` [why oom_adj does not work] " Bodo Eggert
2009-01-14 19:22           ` Evgeniy Polyakov
2009-01-15  0:54             ` David Rientjes
2009-01-15  8:43               ` Evgeniy Polyakov
2009-01-15 21:50             ` Bodo Eggert
2009-01-15 22:35               ` Evgeniy Polyakov
2009-01-17 14:12                 ` Bodo Eggert
2009-01-17 14:22                   ` Evgeniy Polyakov
2009-01-18 12:37                     ` Bodo Eggert
2009-01-18 13:13                       ` Evgeniy Polyakov
2009-01-18 20:25                         ` Bodo Eggert
2009-01-18 20:41                           ` 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=20090113135246.GA29251@ioremap.net \
    --to=zbr@ioremap.net \
    --cc=akpm@linux-foundation.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=davej@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    /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